一个命令的输出导致下一个命令失败

时间:2017-07-14 08:48:48

标签: powershell powershell-v2.0

您好我有以下脚本

winrs -r:test.one.two -u:test -p:'te$st' echo %computername%

winrs -r:test2.one.two -u:test -p:'te$st' echo %computername%

winrs -r:test3.one.two -u:test -p:'te$st' echo %computername%

我遇到以下问题,如果第一个winrs命令失败且原因为cannot resolve host name,或者结果与预期的计算机名称不同,例如空行。下一个命令也失败了,有没有办法防止这种行为?忽略输出或将其重定向到另一个(但也可见)流?

1 个答案:

答案 0 :(得分:1)

使用& cmd /c "winrs -r:test.one.two -u:test -p:'te$st' echo %computername% 2>&1"重定向错误,稍后您可以在每个级别使用try catch。

try
{
    try
    {
    & cmd /c "winrs -r:test.one.two -u:test -p:'te$st' echo %computername% 2>&1"
    }
    catch
    {
    "1st winrs failed"
    }
    try
    {
    & cmd /c "winrs -r:test2.one.two -u:test -p:'te$st' echo %computername% 2>&1"
    }
    catch
    {
    "2nd winrs failed"
    }
    try
    {
    & cmd /c "winrs -r:test3.one.two -u:test -p:'te$st' echo %computername% 2>&1"
    }
    catch
    {
    "3rd winrs failed"
    }
}
catch
{
"Entire Script failed"
}
希望它有所帮助。