synapsenstau
Goto Top

Batch-Datei soll überprüfen ob ein Verzeichnis vorhanden ist

Moin,

wie bringe ich bitte einer Batch-Datei bei, das sie "schaut" ob ein Verzeichnis vorhanden ist und wenn nicht soll es erstellt werden?
Genauer gesagt weiß ich nicht, wie ich die Ausgabe von "dir" in ein "if" verpackt kriege.

Danke für eure mühen

Content-ID: 258371

Url: https://administrator.de/forum/batch-datei-soll-ueberpruefen-ob-ein-verzeichnis-vorhanden-ist-258371.html

Ausgedruckt am: 17.04.2025 um 22:04 Uhr

Xaero1982
Lösung Xaero1982 23.12.2014 aktualisiert um 20:02:24 Uhr
Goto Top
Hi,

wie wäre es mit einem einfachen

if exist "ordnername"  

oder einem
if not exist "ordnername" md "ordnername"  

Grüße
Meierjo
Lösung Meierjo 23.12.2014 aktualisiert um 20:02:26 Uhr
Goto Top
Hallo

IF EXIST C:\TEST\NUL GOTO NODIR

:NODIR
md C:\TEST

Gruss
synapsenstau
synapsenstau 23.12.2014 um 20:04:50 Uhr
Goto Top
Ich danke euch für die schnelle Hilfe. Klar das es so geht. Habe mal wieder viel zu kompliziert gedacht und bin von der Linux-Shell verwöhnt.
rubberman
rubberman 23.12.2014 um 23:35:49 Uhr
Goto Top
Hallo Zusammen.

Die Lösung von @Xaero1982 funktioniert, aber hat die Schwäche dass auch eine Datei "ordnername" existieren könnte und somit ein falsches Ergebnis liefert.

@Meierjo hat eine alte Technik ausgegraben und falsch interpretiert. Das virtuelle Gerät NUL konnte auf DOS aufgesetzten Windowsversionen dazu benutzt werden um Verzeichnisse zu detektieren, da es in jedem Verzeichnis vorhanden war. Ich erinnere mich, dass das unter XP nicht mehr funktioniert hatte. Auf meiner Win7 Kiste scheint es aber wieder korrekte Ergebnisse zu liefern. Wie auch immer, die Logik ist falsch da das Schlüsselwort NOT fehlt.

Um Verzeichnisse von Dateien zu trennen, sollte man einen Backslash anhängen, á la
if not exist "ordnername\" md "ordnername"

Grüße
rubberman
miniversum
miniversum 24.12.2014 aktualisiert um 11:09:56 Uhr
Goto Top
Hallo

Eine andere Möglichkeit mit dem Dir Befehl wäre diese:

Gruß
...
rubberman
rubberman 24.12.2014 um 13:15:19 Uhr
Goto Top
Hi miniversum,

den Fehlerfall abzufragen ist dann aber auch schon wieder doppelter Aufwand. MD selbst läuft auch nur auf Fehler, falls das Verzeichnis bereits existiert. Es wird nichts neu erstellt oder überschrieben. Bei Inkaufnahme von Fehlern und der Unterdrückung der Meldung reicht ein
2>nul md "ordnernahme"

Grüße
rubberman
miniversum
miniversum 24.12.2014 um 14:09:01 Uhr
Goto Top
Das ist richtig. Aber existiert das Verschreichnis bereits dann wird es angezeigt.
Das wäre dann evtl. störend und würde bei einem Verzeischnis mit vielen Dateien länger dauern.
Mehr von synapsenstausynapsenstauAlte Verzeichnisse löschen via Batchsynapsenstau - 2 Kommentare
Heiß diskutiert
HappyHannesPing Spikes im HeimnetzHappyHannes - 32 KommentaremirdochegalServer 2025 DC - verliert nach reboot Domänenfirewallprofil - nicht als DC erreichbarmirdochegal - 31 KommentareYan2021NUC als NAS verwenden?Yan2021 - 25 KommentareAndi-75Zugriff auf NAS-Ordner von VM nicht möglichAndi-75 - 25 KommentareMysticFoxDEWindows 11 - Unerträgliche RessourcenverschwendungMysticFoxDE - 22 Kommentaremorpheus82Lancom Router DHCP Zuweisungenmorpheus82 - 21 KommentarekpunktSuche kabelloses HID-Zeugs (Mäuse und Tastaturen)kpunkt - 20 KommentareStefanKittelCVE am Ende?StefanKittel - 20 KommentareStefanKittelIdeen für ein zukünftiges IT-Setup für mich sammelnStefanKittel - 14 KommentareNeurothikerMikrotik - wie ändere ich ein Interface von slave auf master?Neurothiker - 14 KommentarejoehuabaAccessPoint Outdoor Kastenjoehuaba - 13 Kommentarem.sterRAM Guidem.ster - 13 Kommentarelinuxer1Firmware für N7100E gesuchtlinuxer1 - 12 Kommentare