PowerShell脚本抛出语法错误

时间:2015-03-26 07:02:34

标签: unix powershell

我正在运行PowerShell脚本,如下所示:

$url = "http://api.weatherunlocked.com/api/forecast/29.36,47.97?app_id=****&app_key=****";
$req = [System.Net.WebRequest]::Create($url)
$req.Method ="GET"
$req.ContentLength = 0
$req.Timeout = 600000
$resp = $req.GetResponse()
$reader = new-object System.IO.StreamReader($resp.GetResponseStream())
$reader.ReadToEnd() | Out-File weatherOutput.json

它发出以下错误:

run.sh: line 2: syntax error near unexpected token `('
run.sh: line 2: `$req = [System.Net.WebRequest]::Create($url)'

2 个答案:

答案 0 :(得分:3)

考虑到错误始于run.sh,您似乎正在尝试在UNIX中运行PowerShell脚本。 Powershell代码只能在安装了PowerShell的Windows机器上运行(内置于Win7 +,单独安装xp和vista)。

尝试在Windows机器上使用此命令运行脚本:

PowerShell.exe -ExecutionPolicy Bypass -File "C:\myscript.ps1"

答案 1 :(得分:0)

在Unix环境中使用wgetcurl

url="http://api.weatherunlocked.com/api/forecast/29.36,47.97?app_id=****&app_key=****"
wget -O weatherOutput.json $url

如果您希望将数据回显到STDOUT,只需将文件名替换为-即可。您可能还想添加参数-q以禁止信息/进度输出。

wget -qO - $url

或者使用curl,默认情况下会将数据写入STDOUT