mr-neo
Goto Top

Batch - Dateien mehrer Ordner kopieren in jeweilige Unterordner

Hallo zusammen,

folgendes Vorhaben möchte ich durchführen. Ich denke, mit einem cmd Befehl bzw. einer *.bat Datei sollte das durchzuführen sein.

In dem Ordner /Artikel/ sind ganz viele Unterordner mit der Artikelnummer als Name

/Artikel/12340078/
/Artikel/12340079/
/Artikel/43210128/

usw.
in den jeweiligen Artikelordner sind Bilder *.jpg hinterlegt den nun in ein jeweiligen Unterordner verschoben werden sollen.

Bsp.
/Artikel/12340078/1.jpg
/Artikel/12340078/2.jpg

→ kopieren in /Artikel/12340078/WebShop/

dass soll das Skript Artikel-Ordner für Artikel-Ordner machen. (> 1.000 Ordner)

Einzelne Dateien aus Ordner X in Y kopieren bekomme ich hin, aber wie bekomme ich die Variable der unterschiedlichen Ordnernamen hin?

Vielen Dank vorweg!

Content-Key: 356252

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

Printed on: April 19, 2024 at 08:04 o'clock

Member: BassFishFox
BassFishFox Nov 27, 2017 updated at 19:11:38 (UTC)
Goto Top
Hallo,

Was hast Du denn schon als Batch/CMD/Script? Woran hapert es?

BFF
Member: Pedant
Solution Pedant Nov 27, 2017 updated at 19:35:44 (UTC)
Goto Top
Hallo mr-neo,

hast Du es so gemeint?

Falls ja, dann teste es erstmal mit einer Kopie des Artikelordners.
Mach Dir noch ein Backup und prüf das Ergebnis möglichst genau.


1. Vorher

C:\Temp\Artikel\12340078\1.bmpC:\Temp\Artikel\12340078\1.jpgC:\Temp\Artikel\12340078\2.bmpC:\Temp\Artikel\12340078\2.jpgC:\Temp\Artikel\12340079\3.bmpC:\Temp\Artikel\12340079\3.jpgC:\Temp\Artikel\12340079\4.bmpC:\Temp\Artikel\12340079\4.jpgC:\Temp\Artikel\43210128\5.bmpC:\Temp\Artikel\43210128\5.jpg


2. Skript anpassen und ausführen

@echo off

cd /d "C:\Temp\Artikel"  

for /f "tokens=1" %%f in ('dir /ad /b') do (  
	md "%%f\WebShop"  
	move "%%f\*.jpg" "%%f\WebShop"  
	move "%%f\*.bmp" "%%f\WebShop"  
	move "%%f\*.png" "%%f\WebShop"  
)

Funktionsweise:
Wechsel in den Ordner "Artikel"
Liste alle Verzeichnisnamen auf (ohne deren Unterverzeichnisse)
Gehe diese Liste durch und mache jeweils:
- Unterordner "WebShop" anlegen in
- Alle JPG-Dateien nach Webshop verschieben
- Alle BMP-Dateien nach Webshop verschieben
- Alle PNG-Dateien NICHT nach Webshop verschieben, weil mit REM auskommentiert


3. Nachher

C:\Temp\Artikel\12340078\WebShop\1.bmpC:\Temp\Artikel\12340078\WebShop\1.jpgC:\Temp\Artikel\12340078\WebShop\2.bmpC:\Temp\Artikel\12340078\WebShop\2.jpgC:\Temp\Artikel\12340079\WebShop\3.bmpC:\Temp\Artikel\12340079\WebShop\3.jpgC:\Temp\Artikel\12340079\WebShop\4.bmpC:\Temp\Artikel\12340079\WebShop\4.jpgC:\Temp\Artikel\43210128\WebShop\5.bmpC:\Temp\Artikel\43210128\WebShop\5.jpg

Mach Dir ein Backup und prüf das Ergebnis möglichst genau.

Gruß Frank
Member: Pedant
Pedant Nov 27, 2017 at 19:19:39 (UTC)
Goto Top
Hallo BassFishFox,

Zitat von @BassFishFox:
Woran hapert es?
Wahrscheinlich an der For-Schleife.

Gruß Frank
Member: BassFishFox
BassFishFox Nov 27, 2017 at 19:31:35 (UTC)
Goto Top
Halloele,

Wahrscheinlich an der For-Schleife.

Kann nur der TO sagen. face-wink

Wann entsteht eigentlich die liste.txt in dem Code von Dir? face-wink

BFF
Member: Pedant
Pedant Nov 27, 2017 at 19:41:28 (UTC)
Goto Top
Hallo BassFishFox,

Zitat von @BassFishFox:
Wann entsteht eigentlich die liste.txt in dem Code von Dir? face-wink

...in einem anderen Skript.
Das war meinerseits ein Copy-Paste-nicht-korrekt-bereinigt-Fehler.
Quelle: BATCH Variable aus .txt Datei ohne Leerzeichen am Ende

if exist liste.txt del liste.txt
Ich habe die Zeile hier jetzt rausgeworfen.

Gruß und Dank
Frank
Member: mr-neo
mr-neo Nov 28, 2017 at 11:00:20 (UTC)
Goto Top
Super. Vielen Dank. So funktioniert das.

In der Tat hatte ich den Schritt mit den flexiblen Ordnern nicht umgesetzt bekommen.
Member: Pedant
Pedant Nov 28, 2017 at 11:29:33 (UTC)
Goto Top
Hallo mr-neo,

schön, dass es funktioniert und danke für die Rückmeldungen.

"For" kann Datei/Directorylistings durchlaufen, aber auch eine Gruppe von vorgegebenen Werten
oder einen Dateiinhalt zeilenweise oder die Ausgabe von anderen Befehlen.

Wenn es Dich weitergehend interessiert...
Tutorial zur FOR-Schleife
(Dieses Tutorial hat mir meine langjährigen "Berührungsängste" genommen.)

Gruß Frank