xmlファイルを読み込んでxmlファイルにリストされているサイトにpingを実行し、出力をテキストファイルに出力するスクリプトがあります。それ以外のすべてのサイトの代わりにpingの最後のサイトだけが表示されます。 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