josijosua
Goto Top

Batch - Unterodner im Unterordner des Unterordners

Guten Morgen

Ich habe ein kleines Problem. Ich erstelle eine Batch Datei mit der ich ein Ordner erstelle aus einer *.txt File Danach sollen mehrere Unterordner erstellt werden. Und jeweils 2 Dateien hinzugefügt werden.
So weit so gut. Funktioniert alles.

Problembeschreibung:
Jetzt möchte ich in einem Spezifischen Unterordner neue Unterordner erstellen und dann im Anschluss neue Unterordner. Jedoch weiss ich nicht wie ich das machen könnte. Für das reichen meine Kenntnisse bei weitem nicht aus.


Hat jemand einen Tipp wie ich das einbinden könnte?


Gruss Josi

::Variablen

@echo off
set startverzeichnis=%CD%
:: Setzt das jetzige Verzeichnis auf den Ort wo sich die *.bat datei befindet

set zielverzeichnis=G:\Test\Test\Test\Test
:: Hier den Namen des Ordner Setzen wohin man die Ordner erstellen möchte

set ordnernamen=%startverzeichnis%\ordnername.txt
:: Den Namen der Datei woraus die Ordner stellt werden sollen 

set unterverzeichnisse=A1 A2 A3 A4 A5 A6 A7
:: Unterverzeichniss Variabel, 

set unterverzeichnisseA1=01 02 03e 04 05 06

set unterverzeichnisse05=0501 0502

set unterverzeichnisse0502=B01 B02 B03 B04 B05

set datei1=G:\Informatik\15_Testsachen\Kunden\Doku\MusterArbeit.docx
set datei2=G:\Informatik\15_Testsachen\Kunden\Doku\MusterWund.docx
:: Setzt die Beiden Dateien welche Kopiert werden sollen. Einfach Pfad angeben.

---------------------------------------------------------
::CODE
---------------------------------------------------------

if exist %zielverzeichnis% goto :doloop
mkdir %zielverzeichnis%
:: Sollte das Zielverzeichnis existieren gehe zu doloop

:doloop
chcp 1252
@for /f "usebackq tokens=* delims=;" %%a in (%ordnernamen%) do call :erstellen %%a  
pushd %startverzeichnis%
goto :eof
:: Erstellt den ordner ins Starverzeichnis  solange wie sich Namen in der Textdatei befinden 
:: Wenn ein Ordner erstellt wurde geht es zum erstellen wenn es keine mehr hat zu eof

:erstellen 
set ordner=%~1
pushd %zielverzeichnis%
if not exist %ordner% mkdir %ordner%
for %%b in (%unterverzeichnisse%) do mkdir %ordner%\%%b & copy %datei1% %ordner%\%%b >nul: & copy %datei2% %ordner%\%%b >nul:
:: Erstellt in jedem Ordner ein Unterordner Ist der Unterordner leer erstellt es die 2 Dateien
:: Sonst geht es weiter und erstellt den Nächsten Ordner

Content-ID: 323894

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

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

Endoro
Endoro 15.12.2016 um 12:59:32 Uhr
Goto Top
Hey,

bitte entschuldige, aber deine Problembeschreibung ist für mich unzureichend und mit fremden Code mag ich mich nicht auseinandersetzen.
Bitte spezifiziere die Aufgabe exakter.

Gruß, Endoro
josijosua
josijosua 16.12.2016 um 11:35:06 Uhr
Goto Top
Ok habe jetzt ein wenig weiter probiert. Und wollte das Programm abändern.

Problembeschreibung:
Ich möchte gerne jetzt eine Ordnerstruktur ein eine Ordner kopieren der erstellt wird. Jedoch kopiert es mir nur die Dateien aber nicht die Ordner die drin sind.


:erstellen 
set ordner=%~1
pushd %zielverzeichnis%
if not exist %ordner% mkdir %ordner%
for %%b in (%unterverzeichnisse%) do mkdir %ordner%\%%b & robocopy %ordner1% %ordner%\%%b>nul:
:: Erstellt in jedem Ordner ein Unterordner Ist der Unterordner leer erstellt es die 2 Dateien
:: Sonst geht es weiter und erstellt den Nächsten Ordner

würde mich sehr über einen Tipp freuen face-smile

Gruss Josi