我尝试使用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"
答案 0 :(得分:1)
您有两个问题,需要纠正这两个问题才能使您的脚本有机会工作。
从CMD.EXE中执行Powershell脚本的命令不应该引用参数:
powershell.exe -ExecutionPolicy RemoteSigned -file test.ps1
要从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,因为这包含驱动器号,因此如果使用不同的字母,您的脚本仍然可以工作。