2016-11-30 2 views
1

Ich muss Schritt in SQL Job haben, um zu überprüfen, gibt es Datei auf einem Pfad, wenn es Datei gibt, dann stoppen Sie mit der weiteren Ausführung. Etwas wie:CMDExec wenn existiert dann stop

$file = "\\networklocation\file.bak" 
if (-exists (Test-Path $file)) 
{ 
    throw "$file not found." 
} 

Antwort

3

Nur lassen Sie den -exists Schalter und gewährleisten die $ErrorActionPreference ist auf stop:

$ErrorActionPreference = 'stop' 
$file = "\\networklocation\file.bak" 
if (Test-Path $file) 
{ 
    throw "$file found." 
} 
+0

Er Ich glaube, er möchte aufhören, wenn die Datei existiert. –

+0

@WalterMitty Sie haben Recht. Will meine Antwort editieren - nur wundern, warum er eine Ausnahme auslöst, wenn die Datei nicht existiert (das ist tatsächlich der Zustand, den er erwartet) ... –

+1

Nun, um es zu erklären. Es gibt einige Sicherungs-/Wiederherstellungsjobs, die an dem Mechanismus arbeiten: 1. Nehmen Sie ein Backup von prod auf 2. Stellen Sie es in der Office-Zone wieder her 3. Löschen Sie die Backup-Datei, die auf Benutzeranfrage erneut ausgeführt werden kann. Nicht meine logischen Jungs –

0

Test-Path-Cmdlets Rückkehr Boolean und Sie sind fast da:

$file = "\\networklocation\file.bak" 
if (Test-Path $file) 
{ 
    throw "$file not found." 
}