2017-02-10 6 views
0

Ich verwende robocopy in PowerShell und robocopy gibt einen Exitcode 1 zurück, wenn eine Datei erfolgreich kopiert wurde, was PowerShell sagt, dass es fehlgeschlagen ist. Gibt es eine gute Vorgehensweise, um den Fehler zu ignorieren, da es kein Fehler ist?Lassen Sie PowerShell den Exitcode ignorieren?

$source = "$env:buildlocation\Reports\$env:ctrelname\DiskImages\DISK1"; 
$target = "$env:builddestination\$env:ctrelver\$env:ctrelname\Reports"; 
$robocopyOptions = @('/e', '/r:0', '/np'); 
Get-ChildItem -Path $source -Directory -Attributes !Hidden | 
    Sort-Object -Property CreationTime | 
    ForEach-Object { & robocopy.exe $source $target $robocopyOptions }; 
echo $LASTEXITCODE 
+0

Siehe [diese Frage] (http://stackoverflow.com/questions/13883404/custom-robocopy-progress-bar-in-powershell) zum Beispiel. – sodawillow

+1

Warum brauchen Sie das? Exit-Codes von externen Befehlen sind für PowerShell nicht relevant, es sei denn, Sie behandeln den Exit-Code explizit. –

Antwort

0

Wie oben erwähnt, wertet PowerShell den Fehlercode eines nativen Befehls nicht aus. Es speichert es nur in $LastExitCode. Versuchen Sie, dieses einfache Beispiel:

Invoke-Expression 'cmd /c "exit 5"' 

Powershell speichert nur 5 in $LastExitCode.

Verwandte Themen