如何将我的 try-catch 正确输出到 txt 文件中?
How can i correctly output my try-catch into a txt file?
我正在开发一个 powershell 脚本,它可以让我查看我的 DHCP 服务器是否 运行 正常以及它们的当前状态(剩余多少地址,使用了多少... ).
到目前为止,还不错。我得到了我需要的所有信息,但是,这里的第一个测试是检查服务器是否响应良好。
为此,我正在使用 try-catch,我想将所有未响应的服务器输出到 .txt 中。
问题:我只输出最后一个没有响应的服务器,我没有得到前一个没有响应的服务器。
试过 |文件外
|设置内容和 |添加内容
我发现搜索似乎没有任何效果。
$DHCPSRV=""
$myError=0
$myArray=@( Import-Csv .\CSV\DHCP_list.csv)
foreach ($element in $myArray) {
try {
Write-Output ""
$DHCPSRV=$element.FQDN
$Message = "Server DHCP: " + $DHCPSRV
Write-Output $Message
Write-Output ""
$srv=get-dhcpserverv4statistics -ComputerName $DHCPSRV
$Message ="Server start time : " + $srv.ServerStartTime
Write-Output $Message
$Message ="Number of address : " + $srv.TotalAddresses
Write-Output $Message
$Message ="Address used : " + $srv.AddressesInUse
Write-Output $Message
$Message ="% remaining : " + $srv.PercentageAvailable + " %"
Write-Output $Message
Get-DhcpServerSetting -ComputerName $DHCPSRV
Write-Output ""
}
catch{
Write-host "Server not responding " $DHCPSRV -BackgroundColor red -ForegroundColor White
$myerror=$error+1
$test = $DHCPSRV
}
}
if ($myError -eq 0){
Write-Output ""
Write-host "All DHCP are working good" -BackgroundColor green -ForegroundColor black
}
$test | Set-Content '.\Output\dhcp_failed.txt'
$test | Add-Content '.\Output\dhcp_failed.txt'
Write-Output ""
Write-Output ""
Write-Output "------------------------------------------------"
pause
我想在我的 txt 中输出所有未通过 try-catch 测试的服务器!
由 bluuf 解决 - 谢谢!
只需在我的 catch
中添加 -append
catch{
Write-host "Server not responding " $DHCPSRV -BackgroundColor red -ForegroundColor White
$myerror=$error+1
$DHCPSRV | out-file '.\path\file.txt' -append
}
还在脚本的开头添加了 clear-content '.\path\file.txt'
,这样我的文件在每次启动时都会被清除!
我正在开发一个 powershell 脚本,它可以让我查看我的 DHCP 服务器是否 运行 正常以及它们的当前状态(剩余多少地址,使用了多少... ).
到目前为止,还不错。我得到了我需要的所有信息,但是,这里的第一个测试是检查服务器是否响应良好。
为此,我正在使用 try-catch,我想将所有未响应的服务器输出到 .txt 中。 问题:我只输出最后一个没有响应的服务器,我没有得到前一个没有响应的服务器。
试过 |文件外 |设置内容和 |添加内容 我发现搜索似乎没有任何效果。
$DHCPSRV=""
$myError=0
$myArray=@( Import-Csv .\CSV\DHCP_list.csv)
foreach ($element in $myArray) {
try {
Write-Output ""
$DHCPSRV=$element.FQDN
$Message = "Server DHCP: " + $DHCPSRV
Write-Output $Message
Write-Output ""
$srv=get-dhcpserverv4statistics -ComputerName $DHCPSRV
$Message ="Server start time : " + $srv.ServerStartTime
Write-Output $Message
$Message ="Number of address : " + $srv.TotalAddresses
Write-Output $Message
$Message ="Address used : " + $srv.AddressesInUse
Write-Output $Message
$Message ="% remaining : " + $srv.PercentageAvailable + " %"
Write-Output $Message
Get-DhcpServerSetting -ComputerName $DHCPSRV
Write-Output ""
}
catch{
Write-host "Server not responding " $DHCPSRV -BackgroundColor red -ForegroundColor White
$myerror=$error+1
$test = $DHCPSRV
}
}
if ($myError -eq 0){
Write-Output ""
Write-host "All DHCP are working good" -BackgroundColor green -ForegroundColor black
}
$test | Set-Content '.\Output\dhcp_failed.txt'
$test | Add-Content '.\Output\dhcp_failed.txt'
Write-Output ""
Write-Output ""
Write-Output "------------------------------------------------"
pause
我想在我的 txt 中输出所有未通过 try-catch 测试的服务器!
由 bluuf 解决 - 谢谢!
只需在我的 catch
中添加 -appendcatch{
Write-host "Server not responding " $DHCPSRV -BackgroundColor red -ForegroundColor White
$myerror=$error+1
$DHCPSRV | out-file '.\path\file.txt' -append
}
还在脚本的开头添加了 clear-content '.\path\file.txt'
,这样我的文件在每次启动时都会被清除!