2p
Goto Top

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

Content-ID: 14097

Url: https://administrator.de/forum/per-batch-die-existenz-eines-verzeichnisses-pruefen-14097.html

Ausgedruckt am: 27.12.2024 um 01:12 Uhr

n4426
n4426 06.08.2005 um 21:01:11 Uhr
Goto Top
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
Biber
Biber 06.08.2005 um 22:08:07 Uhr
Goto Top
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
2P
2P 06.08.2005 um 22:20:51 Uhr
Goto Top
face-wink Danke - stimmt - das ist natürlich die einfachste Lösung.
Wäre allerdings schön zu wissen, warum meine Lösung nicht funktionieren will ...

bis dann ...
2P
2P 06.08.2005 um 22:24:15 Uhr
Goto Top
Das ist natürlich noch besser.
Du solltest deinen Namen in "Batch-Biber" ändern face-wink face-wink face-wink

nochmal schönes Wochenende und Danke ...
Biber
Biber 07.08.2005 um 00:20:03 Uhr
Goto Top
Na ja, 2P,
ein oder zwei andere Hobbies hab ich schon auch noch gottseidank..
..und meinen Nick hatte ich auch nicht fürs Bätche-Bauen bekommen *gg

Dir auch ein schönes Wochenende