1

我正在尝试使用 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"
4

2 回答 2

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%.

于 2017-01-27T13:00:17.280 回答
0

powershell 中不使用%VAR%表单,仅在 CMD 中使用。在 PowerShell 中,您需要改为使用$env:VAR

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

对于您的脚本,请尝试以下操作:

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

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

于 2017-01-27T12:59:09.737 回答