我有腳本讀取xml文件,然後ping xml文件中列出的網站,並輸出到文本文件。除了它只顯示最後一個站點而不是所有站點之外,哪個更好。 xml文件:輸出缺少信息
<Servers>
<Server id="1">
<name>server1</name>
<cfusion>www.cnn.com</cfusion>
<dotnet>www.msn.com</dotnet>
</Server>
<Server id="2">
<name>server2</name>
<cfusion>www.yahoo.com</cfusion>
<dotnet>www.google.com</dotnet>
</Server>
<Server id="3">
<name>server3</name>
<cfusion>www.wwe.com</cfusion>
<dotnet>www.nfl.com</dotnet>
</Server>
</Servers>
腳本:
[xml]$servers = Get-Content c:\cfusion.xml
$collection = $()
foreach($server in $servers.Servers.Server) {
$status = @{ "Cold Fusion" = $server.cfusion; "Dot Net" = $server.dotnet; "Server Name" = $server.name; }
if (Test-Connection $server.name -Count 1) {
$status["Status"] = "Online"
} else {
$status["Status"] = "Offline"
}
if (Test-Connection $server.cfusion -Count 1) {
$status["Cold Fusion"] = "Up"
} else {
$status["Cold Fusion"] = "Down"
}
if (Test-Connection $server.dotnet -Count 1) {
$status["Dot net"] = "Up"
} else {
$status["Dot Net"] = "Down"
}
New-Object -TypeName PSObject -Property $status -OutVariable serverstatus |
Format-table -Property "Server Name", "Status", "Cold Fusion", "Dot Net" -AutoSize |
Out-File c:servstatus.txt
}
$collection
有了正確的縮進,你可以清楚地看到你覆蓋該文件在foreach'的'每次迭代。 – sodawillow