halunke
Goto Top

Ordner per Batch anlegen ?

Moin…,

ich habe eine Ordnerstruktur die wie folgt aussieht:

Da gibt es einen Ordner, nennen wir Ihn Ordner1 in diesem Ordner gibt es weitere Ordner test1, test2, test3 usw. Jetzt möchte ich per Batch in den Ordner test1, test2, test3 usw. zwei neue Ordner anlegen: Pause1 und Pause2 ist das möglich, in der Batch Platzhalter zu arbeiten also mit *. Es ist Unmöglich alle Ordner per Hand anzulegen.

mfg
halunke

Content-Key: 35777

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

Ausgedruckt am: 19.03.2024 um 07:03 Uhr

Mitglied: 31431
31431 11.07.2006 um 12:39:02 Uhr
Goto Top
Hey du ... :P
ich will ja nicht meckern oder trollen .. aber wäre es für dich ok, wenn es ein Beitrag wird und kein Tutorial .. ?

Danke ..

Mfg
mythiander
Mitglied: halunke
halunke 11.07.2006 um 13:18:42 Uhr
Goto Top
oh sorry
Mitglied: Biber
Biber 11.07.2006 um 14:40:09 Uhr
Goto Top
for /L %i in (1,1,222) do @for %a in (1,2) do @md c:\test\ordner1\test%i\pause%a

...legt unterhalb von c:\test\ordner1 jeweils die Ordner "test1" bis "test222" mit den Unterordnern "pause1" und pause2" an.
Wofür auch immer....

Gruß
Biber
Mitglied: joehorn
joehorn 11.07.2006 um 18:43:28 Uhr
Goto Top
In der Annahme, dass die Ordner test1, test2, ... schon existieren und wir uns in dem Ordner befinden, der diese Unterordner enthält (sonst sollten wir mit cd <Pfad> dahin wechseln):

Auf der Komandozeile:
for /D %b in (test*) do @for %a in (1,2) do @md "%b\pause%a"

bzw. in Batchdateien:
for /D %%b in (test*) do @for %%a in (1,2) do @md "%%b\pause%%a"

...legt in jedem Unterordner des aktuellen Ordners jeweils die Unterordnern "pause1" und pause2" an.

for /D %b in (test*) do ...
setzt %b der Reihe nach auf alle Unterordner (wegen /D ) im aktuellen Ordner, deren Namen mit 'test' beginnt.

for %a in (1,2) do ...
setzt %a der Reihe nach auf die Listenwerte, die auch durch ein Leerzeichen getrennt werden können.

md "%b\pause%a"
legt dann die gewünschten Unterordner an. Die Anführungszeiches sind erforderlich, wenn Ordnernamen Leerzeichen enthalten.

Dabei ist zu bedenken, das 'test*' alles findet, was mit 'test' beginnt, auch wenn es Leerzeichen enthält. Generell können in der Datei- oder Ordnerliste des for-Befehls alle Platzhalter benutzt werden, die auch die Befehle dir, del, o.a. erlauben und sie liefern auch die gleichen Resultate (eine Liste aller Einträge, auf die die Suchmaske passt).

Weitere Fragen zu den Möglichkeiten des for-Befehls beantwortet auch der Komandozeileninterpreter selbst, wenn man dort

for /?

eingibt. face-smile


Gruß

JH

PS:
Lässt man das letzte '@' (das vor dem md-Befehl) weg, kann man dem Prozess zusehen. Allerdings kostet die Ausgabe etwas zusätzliche Zeit ...

Zum Testen kann man ggf. mal mit der modifizierten Zeile

(for /D %b in (test*) do @for %a in (1,2) do @echo md "%b\pause%a") >> Logfile.txt

arbeiten, da man so vorher quasi simuliert sehen kann, was angelegt worden währe, und ggf. noch korrigieren kann, bevor die Platte eventuell zugemüllt wird.