Erstellen eines Verzeichnisses in allen Unterverzeichnissen
Ich versuche eine Batchdatei zu schreiben, welche in allen Unterverzeichnissen, in der dir Batchdatei liegt, ein Verzeichnis zu erstellen. Jedoch habe ich hierbei ein Problem!
Ich habe folgenden Code schon entwickelt:
Weiterhin habe ich folgende Ordnerstruktur:
Ich bekomme jedoch die Meldung das in keinem der Ordner schon der Ordner ensteht. Folgenden Output bekomme ich:
Wenn ich mir mit jeder Iteration die Variable NEWDIR ausgeben lasse, dann bekomme ich immer diese Meldung:
Weiß jemand Rat ?
Ich bin ehrlich gesagt überfragt, warum der Ordnername erst richtig ausgegeben wird und nach der Verarbeitung mit SET immer der Ordner "c" genutzt wird.
Beste Grüße und Danke,
Manic.
Ich habe folgenden Code schon entwickelt:
@ECHO OFF
REM --------------------------------------------------------------------------
REM Changeable values
REM --------------------------------------------------------------------------
SET CREATE=SRC
SET SRC=\SRC\
REM --------------------------------------------------------------------------
REM Don't change this values
REM --------------------------------------------------------------------------
SET OLDDIR=%CD%
SET DEST=%OLDDIR%%SRC%
REM --------------------------------------------------------------------------
FOR /F %%i IN ('DIR /AD /B "%DEST%"') DO (
ECHO + Check folder %%i
SET "NEWDIR=%DEST%%%i"
SET "CREATEDIR=%DEST%%i\%CREATE%"
IF EXIST "%DEST%%i\%CREATE%" (
ECHO + %CREATE%-Folder exists
ECHO + No creation needed
) ELSE (
ECHO + %CREATE%-Folder does not exist
ECHO + Create %CREATE%-Folder
CD %NEWDIR%
MKDIR %CREATE%
CD %OLDDIR%
ECHO + Done
)
ECHO.
)
Weiterhin habe ich folgende Ordnerstruktur:
--- Currentdir
˫ /SRC
˫ /a
˫ /b
˪ /c
˪ /src
˪ execute.bat
Ich bekomme jedoch die Meldung das in keinem der Ordner schon der Ordner ensteht. Folgenden Output bekomme ich:
+ Check folder a
+ SRC-Folder does not exist
+ Create SRC-Folder
Ein Unterverzeichnis oder eine Datei mit dem Namen "SRC" existiert bereits.
+ Done
+ Check folder b
+ SRC-Folder does not exist
+ Create SRC-Folder
Ein Unterverzeichnis oder eine Datei mit dem Namen "SRC" existiert bereits.
+ Done
+ Check folder c
+ SRC-Folder does not exist
+ Create SRC-Folder
Ein Unterverzeichnis oder eine Datei mit dem Namen "SRC" existiert bereits.
+ Done
Wenn ich mir mit jeder Iteration die Variable NEWDIR ausgeben lasse, dann bekomme ich immer diese Meldung:
<Ordnerhierarchie>\SRC\c
Weiß jemand Rat ?
Ich bin ehrlich gesagt überfragt, warum der Ordnername erst richtig ausgegeben wird und nach der Verarbeitung mit SET immer der Ordner "c" genutzt wird.
Beste Grüße und Danke,
Manic.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167473
Url: https://administrator.de/forum/erstellen-eines-verzeichnisses-in-allen-unterverzeichnissen-167473.html
Ausgedruckt am: 20.05.2025 um 23:05 Uhr
5 Kommentare
Neuester Kommentar
Hallo ManicPumpkin und willkommen im Forum!
Das Stichwort zu Deinem Code wäre "
- aber falls ich das richtig verstehe und Du tatsächlich nur erreichen willst, dass es in jedem Unterverzeichnis des aktuellen Verzeichnisses ein Verzeichnis "SRC" geben soll, würde
genügen ...
Wenn Du gesteigerten Wert auf die Prüfung, ob das Verzeichnis bereits vorhanden ist, legst, dann eben:
Natürlich ist das, wie Du es ja schon vorhattest, mit einer Variablen für "SRC" etwas "schöner" und wartungsfreundlicher ...
So oder so ist die "Herumhüpferei" mit "
Grüße
bastla
Das Stichwort zu Deinem Code wäre "
delayedExpansion
" - siehe dazu auch Friemlers Tutorial zur FOR-Schleife ...- aber falls ich das richtig verstehe und Du tatsächlich nur erreichen willst, dass es in jedem Unterverzeichnis des aktuellen Verzeichnisses ein Verzeichnis "SRC" geben soll, würde
for /d %%i in (*.*) do md "%%i\SRC" 2^>nul
Wenn Du gesteigerten Wert auf die Prüfung, ob das Verzeichnis bereits vorhanden ist, legst, dann eben:
for /d %%i in (*.*) do (
if exist "%%i\SRC" (
echo Gibt's schon
) else (
echo Wird in %%i erstellt
rem oder auch: Wird in %%~nxi erstellt
md "%%i\SRC"
)
)
So oder so ist die "Herumhüpferei" mit "
CD
" aber unnötig.Grüße
bastla
hallo ManicPumpkin,
Das ist zwar in englisch, aber beschreibt es sehr einfach.
Gruss
Tsuki
Was bedeutet denn "%%~nxi" ?
Ein bisschen Dr.Google ergibt dies:Das ist zwar in englisch, aber beschreibt es sehr einfach.
Gruss
Tsuki