2017-07-14 1 views
0

Hallo ich habe folgende SkriptAusgabe auf einen Befehl Ursache nächsten ein bis versagt

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% 

ich folgendes Problem, wenn erste winrs Befehl mit Grund fehlschlägt cannot resolve host name oder das Ergebnis ist anders, als erwartet Computername zum Beispiel leere Zeile. Der nächste Befehl schlägt ebenfalls fehl, gibt es eine Möglichkeit, ein solches Verhalten zu verhindern? Ausgabe ignorieren oder auf den anderen (aber auch sichtbaren) Stream umleiten?

Antwort

1

Verwenden Sie & cmd /c "winrs -r:test.one.two -u:test -p:'te$st' echo %computername% 2>&1", um den Fehler umzuleiten, und später können Sie try catch auf jeder Ebene verwenden.

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" 
} 

hoffe es hilft.

Verwandte Themen