2017-01-27 30 views
1

我試圖使用PowerShell下載PuTTY可執行文件,但無法獲取臨時路徑上的文件。PowerShell文件下載問題

我的腳本:

$Url = "https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe" 
$Path = "C:%homepath%\AppData\Local\Temp\putty.exe" 
$Wc = New-Object System.Net.WebClient 
$Wc.DownloadFileAsync($Url,$Path) 

我通過CMD執行以下命令:

powershell.exe "-ExecutionPolicy" "RemoteSigned" "-file" "test.ps1" 
+0

請包括您收到的任何錯誤消息以及任何其他有關您爲了使其正常工作而嘗試過的信息。 –

回答

0

%VAR%形式是不是在PowerShell中使用,這只是CMD使用。在PowerShell中,您需要使用$env:VAR

您可以運行Get-ChildItem Env:以獲取可以使用的所有環境變量的列表。

您的腳本試試這個:

$Path = "$env:USERPROFILE\AppData\Local\Temp\putty.exe" 

我用USERPROFILE代替HOMEPATH因爲這包括驅動器盤符,所以如果使用不同的信你的腳本仍然可以工作。

1

您有兩個問題,這兩個問題都需要糾正,以便您的腳本有機會工作。

  1. 從內CMD.EXE執行PowerShell腳本不應該有論據引用的命令:

    powershell.exe -ExecutionPolicy RemoteSigned -file test.ps1

  2. 爲了擴大從PowerShell中的系統環境變量,你不環繞它與你在CMD中做的%一樣。有關更多信息,請參閱http://ss64.com/ps/syntax-env.html;假設環境變量HOMEPATH存在,您可以在Powershell中將其引用爲$env:homepath,而不是%homepath%