567 Stimmen

Prüfen, ob eine Datei innerhalb einer Batch-Datei existiert

Ich muss ein Dienstprogramm nur ausführen, wenn eine bestimmte Datei vorhanden ist. Wie kann ich dies in Windows Batch tun?

897voto

Chris J Punkte 29515
if exist <insert file name here> (
    rem file exists
) else (
    rem file doesn't exist
)

Oder in einer einzigen Zeile (wenn nur eine einzige Aktion stattfinden soll):

if exist <insert file name here> <action>

zum Beispiel öffnet dies notepad auf autoexec.bat, wenn die Datei existiert:

if exist c:\autoexec.bat notepad c:\autoexec.bat

10 Stimmen

Wenn es sich um Pfade mit Leerzeichen handelt: stackoverflow.com/questions/138981/

5 Stimmen

@loopkin - else gültig ist, siehe "if /?" ... "Die ELSE-Klausel muss in der gleichen Zeile stehen wie der Befehl nach dem IF. Zum Beispiel: [...zahlreiche Anwendungsbeispiele...]"

4 Stimmen

@chris-j Danke Chris, du hast recht, es scheint so, als ob die Klammern in der gleichen Zeile stehen müssen wie das else. Das war es, was ich falsch gemacht habe. Ich glaube, ich werde mich nie an die Batch-Syntax gewöhnen :(

97voto

Sheng Jiang 蒋晟 Punkte 14949
C:\>help if

Führt die bedingte Verarbeitung in Batch-Programmen durch.

IF [NOT] ERRORLEVEL number Befehl

IF [NOT] string1==string2 Befehl

IF [NOT] EXIST Befehl filename

72voto

RBerteig Punkte 39719

Versuchen Sie es mit folgendem Beispiel, zitiert aus der Ausgabe von IF /? unter Windows XP:

IF EXIST filename.txt (
    del filename.txt
) ELSE (
    echo filename.txt missing.
)

Sie können auch auf eine fehlende Datei mit IF NOT EXIST .

El IF Befehl ist ziemlich mächtig. Die Ausgabe von IF /? wird eine aufmerksame Lektüre lohnen. Versuchen Sie doch einmal die /? für viele der anderen integrierten Befehle, um viele versteckte Schätze zu finden.

12 Stimmen

Warum das '.' am Ende des Dateinamens? Ist es ein Tippfehler?

7 Stimmen

Ich habe den Hilfetext aus dem aktuellen IF Befehl in CMD.EXE eingebaut, der diese Punkte hatte. Ich weiß nicht, warum sie sie eingefügt haben, aber es scheint inkonsequent zu sein. Natürlich, was die EXIST Schlüsselwort ist ein gültiger Dateiname, der vollständig qualifiziert sein kann. Andere Befehle verwenden das Idiom [drive:][path]filename anstelle des Textes filename. hier verwenden, was offensichtlich klarer ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X