我有两个需要在PowerShell中执行的命令。其他所有东西都可以批量下载。我可以在PowerShell中编写所有内容,但我必须确保正确设置执行策略,这可能是我们在这些服务器上的netadmins的安全问题。
在我的批处理脚本中,我需要:
在第2步中,我的两个powershell命令是:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://path/to/file", "file.name")
有没有办法可以将这两行组合成一个Powershell命令,就像我在unix中使用分号一样?我试图在两行之间加一个分号并得到以下错误:
Missing ')' in method call.
At line:1 char:62
+ $client.DownloadFile( <<<< http://path/to/file )
+ CategoryInfo : ParserError: (CloseParenToken:TokenId) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndParenthesisInMethodCall
但是,在一个名为“wget.ps1”的实际Powershell脚本中,它会执行:
$ powershell -c wget.ps1
答案 0 :(得分:1)
嗯,你至少有两个选择。第一种是在运行脚本时定义执行策略。这只会更改您正在开始的一个会话的策略:
powershell.exe -File 'C:\Path\To\File.ps1' -ExecutionPolicy RemoteSigned
或者您可以直接传递命令:
powershell.exe -command {$string = 'bobdee';$client.DownloadFile("http://path/to/file", "file.name")}
答案 1 :(得分:0)
你可以这样做:
(new-object System.Net.WebClient).DownloadFile("http://path/to/file", "file.name")
答案 2 :(得分:0)
2013年更新:
我不确定11年的情况如何,但现在您可以在PowerShell中执行以下操作:
wget "http://path/to/file" -outfile "file.name"