我正在使用Powershell版本2,因此我无法使用Ping-Host,如此处所述 有没有办法将Ping-Host视为PowerShell中的布尔值?
我可以使用测试连接,即
Test-Connection *ip_address* -count 1
Run Code Online (Sandbox Code Playgroud)
我试图将它变成一个布尔值,但它不起作用
if ($(test-connection server -count 1).received -eq 1) { write-host "blah" } else {write-host "blah blah"}
Run Code Online (Sandbox Code Playgroud)
我能ping的服务器输出"blah blah",好像我无法ping它.
另一方面,如果我ping无法访问的服务器,我会收到错误消息
测试连接:测试与计算机服务器的连接失败:由于资源不足导致错误在行:1字符:22 + if($(test-connection <<<< server -count 1).received -eq 1){write- host"blah"} else {write-host"blah blah"} + CategoryInfo:ResourceUnavailable:(server:String)[Test-Connection],PingException + FullyQualifiedErrorId:TestConnectionException,Microsoft.PowerShell.Commands.TestConnectionCommand
最后它仍然输出"等等".
怎么修?
Sha*_*evy 22
试试-Quiet开关:
Test-Connection server -Count 1 -Quiet
-Quiet [<SwitchParameter>]
Suppresses all errors and returns $True if any pings succeeded and $False if all failed.
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
Run Code Online (Sandbox Code Playgroud)
Adi*_*bar 10
Received不是Test-Connection返回的对象的属性,因此$(test-connection server -count 1).received计算结果为null.你是在思考它; 只是用if (Test-Connection -Count 1).要禁止显示错误消息,请使用-ErrorAction SilentlyContinue,或将命令传递给Out-Null.以下任何一种都可以使用:
if (Test-Connection server -Count 1 -ErrorAction SilentlyContinue) { write-host "blah" } else {write-host "blah blah"}
Run Code Online (Sandbox Code Playgroud)
要么
if (Test-Connection server -Count 1 | Out-Null) { write-host "blah" } else {write-host "blah blah"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16867 次 |
| 最近记录: |