Windows 7上的Powershell 4.0 我的IP地址是192.168.0.102,它确实从cmd提示符回复ping。
我正在尝试运行以下代码表现不佳:
[int]$intPing = 4
[string]$intNetwork = "192.168.0.102"
for ($i=1;$i -le $intPing; $i++)
{
$strQuery = "select * from win32_pingstatus where address = '" + $intNetwork + $i + "'"
$wmi = get-wmiobject -query $strQuery
#"Pinging $intNetwork attempt $i..."
"Pinging $intNetwork $i ... "
if ($wmi.statuscode -eq 0)
{"success"}
else
{"error: " + $wmi.StatusCode}
这是我在一本书中找到的一个例子,但由于某种原因不起作用。 通过提供我的IP它会输出错误,但不会返回错误代码。如果我使用错误的IP地址,则会出现没有错误代码的相同问题。如果我使用127.0.0.1,则返回"成功"。如果我删除与循环相关的东西,它可以正常工作。
目的是了解使用" for"的循环,因此我对最佳方法不太感兴趣。我有兴趣尝试保留这些代码,以便我可以从中学习。
那我做错了什么?我该如何解决?
答案 0 :(得分:1)
尝试更改此
$strQuery = "select * from win32_pingstatus where address = '" + $intNetwork + $i + "'"
到这个
$strQuery = "select * from win32_pingstatus where address = '$intNetwork'"
原件包含增量编号,导致所有ping失败。