2016-03-25 6 views
1

Ich möchte nur helfen, meine if Aussage zu schreiben, ich habe eine harte Zeit, Informationen online zu finden, um zu tun, was ich möchte. Im Grunde benötige ich meine if-Anweisung, um zu sehen, ob sich die $file an einem bestimmten Ort befindet (was nach Möglichkeit auch mehrere Orte sein können). Bisher habe ich dies:Wie überprüfe ich, ob eine Datei an einem bestimmten Ort vorhanden ist?

foreach ($file in $MyInvocation.MyCommand.Path) { 
    if ($file) { #I need this to search a specific directory or directories 
    } 
} 
+0

Die von Ihnen gepostete Frage und Code machen keinen Sinn. '$ MyInvocation.MyCommand.Path' ist der vollständige Pfad zum Skript, der offensichtlich existiert, sonst würde der Code nicht an erster Stelle laufen. Es ist auch keine Sammlung, die die "foreach" -Schleife sinnlos macht. –

Antwort

1

Wenn Sie sehen wollen, ob etwas versuchen, existiert das test-path Befehl. Dies wird einen Wahr/Falsch-Wert zurückgeben, den Sie in nachfolgende if-Anweisungen stecken und tun können, was Sie wollen.

$fileTest = test-path [file path here] 
if($fileTest -eq $true){ 
    #what happens when the file exists 
} 
else{ 
    #what happens when the file does not exist 
} 
+0

Wenn Sie sicherstellen möchten, dass es sich um eine Datei und kein Verzeichnis handelt, fügen Sie hinzu: '-PathType Leaf' – jessehouwing

0

Wenn Sie wollen nur wissen, ob die Datei dann verwenden an einem der Standorte vorhanden ist:

if(((test-path 'c:\testpath1\test.txt','c:\testpath2\test.txt') -eq $true).Count) 
{ 
"File found!"; 
} 

Wenn Sie wissen möchten, wo die Datei gefunden wurde, führen Sie den Testpfad für jeden Pfad s aus sehr schnell.

if(((test-path 'c:\testpath1\test.txt') -eq $true).Count) 
{ 
"File found at testpath1!"; 
} 
if(((test-path 'c:\testpath2\test.txt') -eq $true).Count) 
{ 
"File found at testpath2!"; 
} 
Verwandte Themen