我有脚本读取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