2016-09-13 2 views
0

Ich habe ein Drehbuch geschrieben und als Teil des Skripts ich überprüft werde, ob ein Auftrag ausgeführt wird und wenn es ist, zwingt ihn zu stoppen:bessere Art und Weise ein Skript zu schreiben boolean Fehler zu vermeiden

$copyjob = Get-Job -Name DBACopy_QFR1-DBA20_2_QFR3-DBS21_S_Drv_DBA -ErrorAction SilentlyContinue 
if ($copyjob) 
{ 
    remove-job $copyjob -force # This job my be causing problems with the backups so we kill it to make sure. 
} 

jedoch , ich denke, was ich geschrieben habe, die Ursache für diesen Fehler ist, wenn das Skript ausgeführt wird:

Wert kann nicht „System.Management.Automation.PSRemotingJob“ convert „System.Boolean“ eingeben. Boolesche Parameter akzeptieren nur Boolesche Werte und Zahlen, wie $ True, $ False, 1 oder 0

Gibt es eine bessere Art und Weise tun, die diesen Fehler nicht auf wirft, oder bin ich völlig falsch im Denken dass dies der Fehler ist.

Antwort

1

Statt

if ($copyjob) 
{ 
} 

Versuchen Sie es mit

if ($copyjob -ne $null) 
{ 
} 
+0

Immer noch den gleichen Fehler. Es besteht immer die Möglichkeit, dass es sich nicht um einen Teil des Skripts handelt. – GiANTOnFire

+0

Nun, ich würde sagen, schreiben Sie einige Write-Output oder Write-Host-Anweisungen in Ihrem Skript und verfolgen Sie, welcher Teil den Fehler wirft. Sie können sich die Ausgabe ansehen und sehen, bis zu welchem ​​Punkt die Ausführung fortschreitet und wo sie fehlschlägt. Etwas wie Write-Output "Zum Entfernen laufende Jobs holen" für das obige Beispiel. –

0

Wenn das alles Ihr Code tut, kann man das vereinfachen:

Remove-Job -Name DBACopy_QFR1-DBA20_2_QFR3-DBS21_S_Drv_DBA -ErrorAction SilentlyContinue 

Weniger Code, weniger Chancen scheitern. Sie können auch pipeline:

Get-Job -Name "SomeName" -ErrorAction SilentlyContinue | remove-job -force 
+0

Wenn der Job mit dem Namen "DBACopy_QFR1-DBA20_2_QFR3-DBS21_S_Drv_DBA" nicht existiert, wird ein Fehler ausgegeben. –

+1

und wird fortgesetzt wegen '-ErrorAction SilentlyContinue' – autosvet

+0

' -ErrorAction SilentlyContinue' kommt von Frage. –

Verwandte Themen