Kann ich IF EXIST mit einer bestimmten Dateierweiterung implementieren?

487
Mr. Mendelli

Ich mache gerade ein Batch-Skript, um ein Programm automatisch auszuführen, wenn ein bestimmter Dateityp (in diesem Fall speziell *.iso) gefunden wird. Hier ist die aktuelle Richtung, in die ich gehe:

IF EXIST *.iso GOTO :AUTORUN  :AUTORUN "Impot.exe" "*.iso" 

Ich weiß, dass mein aktueller Code dies nicht tun wird. Daher möchte ich wissen, ob dies möglich ist, und wie ich mein Skript so programmieren kann, dass es automatisch ausgeführt wird, wenn ein Disc-Image gefunden wird.

1

2 Antworten auf die Frage

2
phuclv

dir Gibt einen Exit-Code ungleich Null zurück, wenn die Dateien nicht gefunden werden

Sie müssen also nur die Fehlerstufe überprüfen

dir *.iso >NUL 2>&1 if errorlevel 1 "Impot.exe" "*.iso" 

oder einfach

dir *.iso >NUL 2>&1 || "Impot.exe" "*.iso" 
1
Alex

Sie können forfilesdas in Windows enthaltene Dienstprogramm verwenden:

forfiles /S /M *.iso /P \Path\where\to\start /C "cmd /c Impot.exe @path" 

Wenn Sie Iso-Dateien nicht rekursiv durchsuchen müssen, entfernen Sie die Option /S

Beachten Sie, dass das Verhalten anders ist. Es ruft `Impot.exe` separat für jede gefundene Datei auf und übergibt den Platzhalter nicht direkt an die ausführbare Datei phuclv vor 6 Jahren 0