1
我想使用powershell來測試到服務器列表的網絡連接,然後轉儲到文本文件,只要它返回true。我的代碼會發生什麼情況,它包括沒有ping的服務器。下面是我有:Powershell foreach循環出文件問題
$servers = Get-Content c:\script\servers.txt
foreach($server in $servers)
{
Test-Connection $server -count 1 -quiet
if ($True){out-file -InputObject $server, $True -Encoding ASCII -Width 50 -Append c:\scriptoutput.txt}
else { write-host "server $server could not be contacted"}
}
現在我在輸出文件中看到的是
server1
True
server2
True
server3
True
但我看到控制檯上是這樣的:
PS C:\> C:\test.ps1
True
True
False
服務器3沒有按不存在,因此無法ping通,在輸出文件中仍顯示爲True,但在控制檯中讀取False。是什麼賦予了?
$真是永遠是真的.... else語句永遠不會達到! – 2012-08-09 21:17:16
輝煌!我知道這很愚蠢。我使用以下方法修復了它: if($ entry -eq「True」){out-file -InputObject $ server,$ True -Encoding ASCII -Width 50 -Append c:\ scriptoutput.txt} – John 2012-08-09 21:20:20