2017-01-27 28 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%