Powershell文件下载问题

时间:2017-01-27 12:35:28

标签: powershell downloadfileasync

我尝试使用PowerShell下载PuTTY可执行文件,但无法在临时路径上获取该文件。

我的剧本:

$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"

2 个答案:

答案 0 :(得分: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%

答案 1 :(得分:0)

在PowerShell中未使用%VAR%表单,这仅在CMD中使用。在PowerShell中,您需要使用$env:VAR代替。

您可以运行Get-ChildItem Env:以获取可以使用的所有环境变量的列表。

对于你的脚本,试试这个:

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

我使用了USERPROFILE而不是HOMEPATH,因为这包含驱动器号,因此如果使用不同的字母,您的脚本仍然可以工作。