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-Key: 14097

Url: https://administrator.de/contentid/14097

Printed on: April 18, 2024 at 23:04 o'clock

Member: n4426
n4426 Aug 06, 2005 at 19:01:11 (UTC)
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
Member: Biber
Biber Aug 06, 2005 at 20:08:07 (UTC)
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
Member: 2P
2P Aug 06, 2005 at 20:20:51 (UTC)
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 ...
Member: 2P
2P Aug 06, 2005 at 20:24:15 (UTC)
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 ...
Member: Biber
Biber Aug 06, 2005 at 22:20:03 (UTC)
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