netzfetzer
Goto Top

Ordner per Batch verschieben

Hallo,
ich habe folgendes Problem und bräuchte dazu Hilfe:

Ich möchte per Batch mehrere Ordner aus einem Quell-Verzeichnis in ein Zielverzeichnis verschieben. Das besondere dabei ist, dass ich den Anfangsbuchstaben des Quell-Ordners auslesen möchte und dieser dann automatisch ans Zielverzeichnis angehangen wird.

Beispiel (es handelt sich dabei um Ordner):

C:\Quelle

aaa
abb
acc
baa
bbb
bcc
...

C:\Ziel\

a
b
...

Ziel ist, dass die Ordner aus dem Quellverzeichnis, welche mit "a/A" beginnen, in den Zielordner "C:\Ziel\a" verschoben werden. Die Ordner, welche mit "b/B" beginnen, nach C:\Ziel\b verschoben werden usw.

Könnt Ihr mir dabei bitte behilflich sein???

Vielen Dank.

Content-Key: 133388

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

Ausgedruckt am: 19.03.2024 um 01:03 Uhr

Mitglied: 60730
60730 13.01.2010 um 17:48:23 Uhr
Goto Top
Servus,


als Ansatz zum weiterdenken....
und als einzeiler für die DosBox - nicht für ein Script

for /f %i in ('dir /B /AD C:\Quelle\a*') do move %i C:\Ziel\a\  
for /f %i in ('dir /B /AD C:\Quelle\b*') do move %i C:\Ziel\b\  

Als Script - jeweils %% stat einem %

Das könnte man nun auch mit einer weiteren Schleife drumherum schneidern - oder 24 einzelne Zeilen draus machen - je nach Gusto

Gruß
Mitglied: bastla
bastla 13.01.2010 um 17:50:50 Uhr
Goto Top
Hallo Netzfetzer und willkommen im Forum!

Etwa so:
@echo off & setlocal
set "Quelle=C:\Quelle"  
set "Ziel=C:\Ziel"  

for /d %%i in ("%Quelle%\*.*") do call :ProcessDir "%%i"  
goto :eof

:ProcessDir
set "Ordnername=%~n1"  
set "Buchstabe=%Ordnername:~,1%"  
set "ZB=%Ziel%\%Buchstabe%"  
if not exist "%ZB%" md "%ZB%"  
echo move %1 "%ZB%\"  
goto :eof
Das "echo" vor dem "move'" soll ein gefahrloses Testen ermöglichen (die "Buchstabenordner" werden allerdings bereits beim Testlauf erzeugt, falls nicht bereits vorhanden) - wenn Du es entfernst, werden die Ordner tatsächlich verschoben.

Grüße
bastla
Mitglied: Netzfetzer
Netzfetzer 13.01.2010 um 18:13:27 Uhr
Goto Top
Genial und super schnell !!!

danke Timo, danke Bastla !!!

ich habe mich für die Lösung von Bastla entschieden, diese funktioniert wunderbar.