Batch Programmierung

Diskutiere Batch Programmierung im Programmierung Forum im Bereich Software Forum; Guten Nabend miteinander. Also ich darf für meinen Chef ein kleines Programm schreiben welches Die Namen aus einer Textdatei ausliest und danach...
J

Josijosua

Gast
Guten Nabend miteinander.

Also ich darf für meinen Chef ein kleines Programm schreiben welches Die Namen aus einer Textdatei ausliest und danach den jeweiligen Ordner erstellt.Im Anschluss sollen in diesem Ordner 7 Unterordner erstellt werden. Und in jedem Unterordner sollen 2 fixe Dateien erstellt werden

Ich habe jetzt schon ein bisschen herum experimentiert und folgendes geschafft.

Erstellen der Ordner aus der Textdatei.
rem @For /f "tokens=1" %%a in (ordnername.txt) do mkdir %%a
chcp 1252
@For /F "usebackq tokens=* delims=;" %%a IN (ordnername.txt) DO @Mkdir "%%a

Das funktioniert ohne Probleme.

Erstellen der Ordner
c:
cd c:\temp\kunden\
for /d %%a in (*) do md "c:\temp\kunden\%%a\Test1"
for /d %%a in (*) do md "c:\temp\kunden\%%a\Test2"
for /d %%a in (*) do md "c:\temp\kunden\%%a\Test3"
for /d %%a in (*) do md "c:\temp\kunden\%%a\Test4"
for /d %%a in (*) do md "c:\temp\kunden\%%a\Test5"
for /d %%a in (*) do md "c:\temp\kunden\%%a\Test6"
for /d %%a in (*) do md "c:\temp\kunden\%%a\Test7"
for /d %%a in (*) do md "c:\temp\kunden\%%a\Test8"

@Echo off &setlocal
set "Kunden=C:\temp\"
set "Ordner1=Kunden"

pushd "%Hauptordner%"
for /f "delims=" %%i in ('dir /ad /b^|findstr /vxc:"%Ordner1%"') do (
copy "%Ordner1%\*.txt" "%%i\"

Hier erstellt es mir die Ordner aber ich bringe sie nicht direkt in den Hauptordner rein.

Für die Datei
@Echo off

for /D /r %%F in "c:\temp\kunden\%%a\Test1" do copy MusterArbeit.docx %%F


Könnte mir vielleicht jemand kurz erklären und helfen. Wie ich es schaffen kann das direkt wenn der Hauptordner erstellt wird die 7 Unterordner miterstellt werden und zugleich die Dateien in den jeweiligen Unterordner kopiert werden. Am besten in einer einzigen bat Datei.

Ich bin schon im Voraus Dankbar.

Gruss Josi
 
DerZong

DerZong

MODERATOR/FAQ-Team
Team
Mitglied seit
12.10.2004
Beiträge
4.677
Alter
41
Eine Möglichkeit wäre die folgende, es gibt aber bestimmt noch unzählige andere (z. B. könnte man einige Bestandteile parametrieren). Müsstest die Batch-Datei entsprechend deiner Gegebenheiten anpassen:
PHP:
@echo off
set startverzeichnis=%CD%
set zielverzeichnis=c:\temp\Kunden
set ordnernamen=%startverzeichnis%\ordnername.txt
set unterverzeichnisse=Test1 Test2 Test3 Test4 Test5 Test6 Test7
set datei1=d:\Dateien\MusterArbeit.docx
set datei2=d:\Dateien\MusterArbeit.xlsx

if exist %zielverzeichnis% goto :doloop
mkdir %zielverzeichnis%

:doloop
@for /f "usebackq tokens=* delims=;" %%a in (%ordnernamen%) do call :erstellen %%a
pushd %startverzeichnis%
goto :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:

:eof
 
J

Josijosua

Gast
Dankeschön

Danke du hast mir sehr geholfen :)

Ja ist mir auch einleuchtender.

Danke nocheinmal und Gruss :)
 
J

Josijosua

Gast
Leerzeichen im Dokument

Hallo nochmals

Jetzt alles soweit eingestellt und probiert. Wenn ich aber Kunden trenne mit Leerzeichen im ordnername.txt zeigt es mir nur den ersten Namen an.

" " geht nicht,

Hast du mir da kurz einen Tipp`?
 
DerZong

DerZong

MODERATOR/FAQ-Team
Team
Mitglied seit
12.10.2004
Beiträge
4.677
Alter
41
Da Leerzeichen immer mal wieder zu Problemen führen, handhabe ich das so: Bei mir bekommt keine Datei und kein Verzeichnis ein Leerzeichen, sondern anstatt dessen einen Unterstrich ( _ ) an selber Stelle. Da gibt es dann keine "Fehlinterpretationen" :hehe

Ansonsten ist das "Abgreifen" der einzelnen Tokens nochmals komplexer. Jedes Leerzeichen mit darauf folgenden Buchstaben lässt pro ausgelesener Zeile zusätzliche Tokens entstehen. Und da müsstest du dann je nach deren Anzahl unterschiedlich drauf reagieren mit dem Code.
 
J

Josijosua

Gast
Danke

Ja mit den Under-Lines habe ich das auch gelöst aber der Chef meinte er wolle Leerzeichen.

Aber dann ist Gut danke für den Hinweis werde es so lassen :)

Vielen lieben Dank für die Hilfe.
 
Thema:

Batch Programmierung

Batch Programmierung - Ähnliche Themen

  • Ich finde meinen Fehler

    Ich finde meinen Fehler: Bin grade bei der Entschlüsselung und immer kommt genau das gleiche bei Raus habt ihr nen Plan wo der Fehler ist FOR /F "skip=%skip%" %%A IN...
  • GELÖST Batch-Programmierung: Prozess starten+warten

    GELÖST Batch-Programmierung: Prozess starten+warten: Ein Prozess soll gestartet werden, unmittelbar danach soll darauf gewartet werden, dass ein bereits bestehender, aebr anderer Prozess durch...
  • Batch Programmierung - Befehl in einer Variablen speichern

    Batch Programmierung - Befehl in einer Variablen speichern: Hallo zusammen, ich versuche gerade verzweifelt eine Batch zu schreiben, welche mir die Ausgabe eines Befehls in einer Variablen speichern soll...
  • GELÖST Schulaufgabe Batch-Programmierung HILFE!!!

    GELÖST Schulaufgabe Batch-Programmierung HILFE!!!: Hallo! Ich habe in der Schule die folgende Aufgaben bekommen: Aufgabe 1: Erstellen Sie eine BATCH-Datei, die folgendes leistet: Es ist ein...
  • Hlfe bei Batch Programmierung

    Hlfe bei Batch Programmierung: Hey Ich muss unter Windows Server 2000 eine 2 kleine BatchDateien schreiben. Könnt Ihr mir dazu vielleicht helfen? Mit der ersten BatchDatei...
  • Ähnliche Themen

    • Ich finde meinen Fehler

      Ich finde meinen Fehler: Bin grade bei der Entschlüsselung und immer kommt genau das gleiche bei Raus habt ihr nen Plan wo der Fehler ist FOR /F "skip=%skip%" %%A IN...
    • GELÖST Batch-Programmierung: Prozess starten+warten

      GELÖST Batch-Programmierung: Prozess starten+warten: Ein Prozess soll gestartet werden, unmittelbar danach soll darauf gewartet werden, dass ein bereits bestehender, aebr anderer Prozess durch...
    • Batch Programmierung - Befehl in einer Variablen speichern

      Batch Programmierung - Befehl in einer Variablen speichern: Hallo zusammen, ich versuche gerade verzweifelt eine Batch zu schreiben, welche mir die Ausgabe eines Befehls in einer Variablen speichern soll...
    • GELÖST Schulaufgabe Batch-Programmierung HILFE!!!

      GELÖST Schulaufgabe Batch-Programmierung HILFE!!!: Hallo! Ich habe in der Schule die folgende Aufgaben bekommen: Aufgabe 1: Erstellen Sie eine BATCH-Datei, die folgendes leistet: Es ist ein...
    • Hlfe bei Batch Programmierung

      Hlfe bei Batch Programmierung: Hey Ich muss unter Windows Server 2000 eine 2 kleine BatchDateien schreiben. Könnt Ihr mir dazu vielleicht helfen? Mit der ersten BatchDatei...
    Oben