2015-03-30 39 views
0

這太奇怪了吧。對於HTTP的那些和https出現很好..端口8080和8443的那些不..PowerShell - 爲什麼某些請求類型不起作用?

$ip="1.2.3.4" 
$urls = "http://$ip","http://"$ip":8080","https://$ip","https://"$ip":8443" 
foreach ($u in $urls) 
{ 
"$u" 
} 

結果表明:

PS C:\Documents and Settings\user> D:\WORK\ps\test.ps1 
Unexpected token 'ip' in expression or statement. 
At D:\WORK\ps\test.ps1:2 char:37 
+ $rsaurls = "http://$ip","http://"$ip <<<< ":8080","https://$ip","https://"$ip":8443" 
    + CategoryInfo   : ParserError: (ip:String) [], ParentContainsErrorRecordException 
    + FullyQualifiedErrorId : UnexpectedToken 

如果我們刪除了報價..

$ip="1.2.3.4" 
$urls = "http://$ip","http://$ip:8080","https://$ip","https://$ip:8443" 
foreach ($u in $urls) 
{ 
"$u" 
} 

And the results show: 
PS C:\Documents and Settings\user> D:\WORK\ps\test.ps1 
http://1.2.3.4 
http:// 
https://1.2.3.4 
https:// 

我想我需要逃避 「:」 ..

個我仔細..

$ip="1.2.3.4" 
$urls = "http://$ip","http://$ip^:8080","https://$ip","https://$ip^:8443" 
foreach ($u in $urls) 
{ 
"$u" 
} 

,結果:

PS C:\Documents and Settings\user> D:\WORK\ps\test.ps1 
http://1.2.3.4 
http://1.2.3.4^:8080 
https://1.2.3.4 
https://1.2.3.4^:8443 

謝謝!

回答

4

我相信PowerShell是解釋$ip:8080作爲其範圍是 「IP」,並將其命名爲 「8080」 的變量。使用大括號來說明變量名稱:

"https://${ip}:8080" 
0

好..用'角色逃脫吧!

$ip="1.2.3.4" 
$urls = "http://$ip","http://$ip`:8080","https://$ip","https://$ip`:8443" 
foreach ($u in $urls) 
{ 
"$u" 
} 

,結果:

PS C:\Documents and Settings\user> D:\WORK\ps\test.ps1 
http://1.2.3.4 
http://1.2.3.4:8080 
https://1.2.3.4 
https://1.2.3.4:8443 
相關問題