Per Batch die Existenz eines Verzeichnisses prüfen
Hallo!
Ich hänge mal wieder an einer Batchdatei fest.
In dieser will ich prüfen, ob ein bestimmtes Verzeichnis existiert und falls nicht will ich es erstellen. Das soll dann so aussehen:
@echo off
echo Gib an, wo das Verzeichnis ist
echo oder wo es erstellt werden soll.
echo Gib den kompletten Verzeichnispfad an (z.B. C:\Test).
set /p verzeichnis=Verzeichnis:
if exist %verzeichnis%\nul goto istda else goto istnichtda
:fehler
echo war wohl nix...
pause >nul
goto ende
:istda
echo Das Verzeichnis wurde gefunden
pause >nul
goto ende
:istnichtda
md %verzeichnis%
echo Verzeichnis wurde erstellt
pause >nul
goto ende
:ende
exit
Irgendwie will das aber nicht klappen. Es endet immer bei der "Fehlermeldung".
Weiss jmd woran es liegt ?
Danke
Ich hänge mal wieder an einer Batchdatei fest.
In dieser will ich prüfen, ob ein bestimmtes Verzeichnis existiert und falls nicht will ich es erstellen. Das soll dann so aussehen:
@echo off
echo Gib an, wo das Verzeichnis ist
echo oder wo es erstellt werden soll.
echo Gib den kompletten Verzeichnispfad an (z.B. C:\Test).
set /p verzeichnis=Verzeichnis:
if exist %verzeichnis%\nul goto istda else goto istnichtda
:fehler
echo war wohl nix...
pause >nul
goto ende
:istda
echo Das Verzeichnis wurde gefunden
pause >nul
goto ende
:istnichtda
md %verzeichnis%
echo Verzeichnis wurde erstellt
pause >nul
goto ende
:ende
exit
Irgendwie will das aber nicht klappen. Es endet immer bei der "Fehlermeldung".
Weiss jmd woran es liegt ?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 14097
Url: https://administrator.de/contentid/14097
Ausgedruckt am: 25.11.2024 um 19:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo 2P,
ich habs so gemacht und dann hats funktioniert.
*
@echo off
echo Gib an, wo das Verzeichnis ist
echo oder wo es erstellt werden soll.
echo Gib den kompletten Verzeichnispfad an (z.B. C:\Test).
set /p verzeichnis=Verzeichnis:
if exist %verzeichnis%\nul goto istda
goto istnichtda
:fehler
echo war wohl nix...
pause >nul
goto ende
:istda
echo Das Verzeichnis wurde gefunden
pause >nul
goto ende
:istnichtda
md %verzeichnis%
echo Verzeichnis wurde erstellt
pause >nul
goto ende
:ende
exit
*
mfg
n4426
ich habs so gemacht und dann hats funktioniert.
*
@echo off
echo Gib an, wo das Verzeichnis ist
echo oder wo es erstellt werden soll.
echo Gib den kompletten Verzeichnispfad an (z.B. C:\Test).
set /p verzeichnis=Verzeichnis:
if exist %verzeichnis%\nul goto istda
goto istnichtda
:fehler
echo war wohl nix...
pause >nul
goto ende
:istda
echo Das Verzeichnis wurde gefunden
pause >nul
goto ende
:istnichtda
md %verzeichnis%
echo Verzeichnis wurde erstellt
pause >nul
goto ende
:ende
exit
*
mfg
n4426
Moin 2P,
war schon richtig gedacht von Dir, aber für den CMD-Interpreter nicht deutlich genug.
Bei mehreren Anweisungen in einer Zeile und wegen der Lesbarkeit grundsätzlich auch bei [IF ... ELSE]-Strukturen lieber immer Klammern verwenden.
Statt if exist %verzeichnis%\nul goto istda else goto istnichtda
besser if exist %verzeichnis%\nul (goto istda) else (goto istnichtda)
Das geht dann auch über mehrere Zeilen:
if exist %verzeichnis%\nul (
echo %verzeichnis% existiert schon
) else (
md %verzeichnis%
%verzeichnis% wurde angelegt
)
pause>nuL
Frank / der Biber aus Bremen
war schon richtig gedacht von Dir, aber für den CMD-Interpreter nicht deutlich genug.
Bei mehreren Anweisungen in einer Zeile und wegen der Lesbarkeit grundsätzlich auch bei [IF ... ELSE]-Strukturen lieber immer Klammern verwenden.
Statt if exist %verzeichnis%\nul goto istda else goto istnichtda
besser if exist %verzeichnis%\nul (goto istda) else (goto istnichtda)
Das geht dann auch über mehrere Zeilen:
if exist %verzeichnis%\nul (
echo %verzeichnis% existiert schon
) else (
md %verzeichnis%
%verzeichnis% wurde angelegt
)
pause>nuL
Frank / der Biber aus Bremen