synapsenstau

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 258371

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

Ausgedruckt am: 13.05.2025 um 11:05 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
MysticFoxDEWindows 11 - Unerträgliche Ressourcenverschwendung - grotesker RAM und CPU VerbrauchMysticFoxDE - 55 KommentareMondragorWindows Server 2025 friert komplett nach Reboot und Zugriff auf iSCSI-Target einMondragor - 29 KommentareCCHEK33Kein Remote Zugriff mit meiner IP AdresseCCHEK33 - 28 KommentareitebobPagefile.sys und hiberfil.sys für die Verkleinerung der Partition löschenitebob - 25 KommentareSchottenrockSchlankster Server für MS-DomäneSchottenrock - 24 KommentarejohapauNameserver von selbst verwaltet auf kommerziellen Anbieter umstellen?johapau - 24 KommentareHolgerLuchsEmpfehlung: Besserer WLAN-AC für VereinHolgerLuchs - 22 KommentareAbstrackterSystemimperatorRealtek 2.5GbE LAN chip (2.5 Gbps-1 Gbps 100 Mbps) hängt bei 10mbitsAbstrackterSystemimperator - 21 KommentareJudgelgOneDrive FreigabeJudgelg - 20 KommentareMysticFoxDEWindows 11 24H2 - Der neue Defender HorrorMysticFoxDE - 18 KommentarePMackeWindows - Automatische Passworteingabe in Anmeldebildschirm und UAC PromptPMacke - 18 KommentarecoltseaversExchange 2019 auf gekauftes Zertifikat umstellencoltseavers - 18 KommentareCoreknabeNicht zertifizierte Platten in Fujitsu EternusCoreknabe - 14 Kommentare