如何在powershell中捕获命令执行所显示的信息?

时间:2017-06-29 20:31:55

标签: powershell

我正在powershell上执行nslookup命令并得到如下输出:

服务器:*****。******。***

地址: *。

* *****。******。pvt找不到 。* 。**:服务器失败

捕获此输出的日志似乎是空的。有什么办法可以捕获主机上显示的服务器失败错误到变量?

2 个答案:

答案 0 :(得分:0)

如果要重定向nslookup的输出,那么在PowerShell中使用[Net.Dns]类时就没有必要了。如果主机存在,则返回[Net.IPHostEntry]。例如:

try {
  if ( [Net.Dns]::GetHostEntry("remoteserver") ) {
    "Host exists"
  }
}
catch [Management.Automation.MethodInvocationException] {
  "Host does not exist"
}

GetHostEntry方法可以使用主机名或IP地址解析。

答案 1 :(得分:0)

您必须自己解析结果,但这就是它的工作原理:

$variable = & nslookup args 2>&1

$variable