Dateien in Unterordnern in weitere Unterordner sortieren und umbennen
Als Anfänger in der Batchprogrammierung bin ich auf diese Seite gestoßen
und erhoffe mir guten Rat und Hilfe.
Ich habe folgendes Problem.
In einem Ordner befinden sich Unterordner welche Dateien beinhalten.
Diese Dateien sollen in weitere Unterordner sortiert werden und umbenannt werden.
Folgendes Schema ist in etwa anzunehmen:
E:\Dokumentation\Rechenzentrum als Ausgangsverzeichnis
E:\Dokumentation\Rechenzentrum\Raum1 als Unterverzeichnis
E:\Dokumentation\Rechenzentrum\Raum2 als Unterverzeichnis
E:\Dokumentation\Rechenzentrum\Raum3 als Unterverzeichnis
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_001_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_002_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_001_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_002_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_001_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_002_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_001_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_002_M85.sor als Datei
Aussehen sollte das ganze hinterher in etwa so:
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\1300\01HE39_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\1300\01HE39_002.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\850\01HE39_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\850\01HE39_002.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\1300\01HE41_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\1300\01HE41_002.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\850\01HE41_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\850\01HE41_002.sor als Datei
wobei HExx Unterordnerkriterium 1 ist (die anderen Zeichen müssen aber auch bleiben ) und M13 für den Ordner 1300 und M85 für den Ordner 850 steht
Das ganze brauche ich um Messprotokolle zur Auswertung vorzubereiten und das sind ne ganze Menge.
Ich hoffe ich habe es halbwegs verständlich ausgedrückt.
Vielen dank schonmal im Voraus
Gruss Smee
In einem Ordner befinden sich Unterordner welche Dateien beinhalten.
Diese Dateien sollen in weitere Unterordner sortiert werden und umbenannt werden.
Folgendes Schema ist in etwa anzunehmen:
E:\Dokumentation\Rechenzentrum als Ausgangsverzeichnis
E:\Dokumentation\Rechenzentrum\Raum1 als Unterverzeichnis
E:\Dokumentation\Rechenzentrum\Raum2 als Unterverzeichnis
E:\Dokumentation\Rechenzentrum\Raum3 als Unterverzeichnis
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_001_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39_002_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_001_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41_002_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_001_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE15_002_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_001_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_001_M85.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_002_M13.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum2\06HE19_002_M85.sor als Datei
Aussehen sollte das ganze hinterher in etwa so:
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\1300\01HE39_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\1300\01HE39_002.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\850\01HE39_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE39\850\01HE39_002.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\1300\01HE41_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\1300\01HE41_002.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\850\01HE41_001.sor als Datei
E:\Dokumentation\Rechenzentrum\Raum1\01HE41\850\01HE41_002.sor als Datei
wobei HExx Unterordnerkriterium 1 ist (die anderen Zeichen müssen aber auch bleiben ) und M13 für den Ordner 1300 und M85 für den Ordner 850 steht
Das ganze brauche ich um Messprotokolle zur Auswertung vorzubereiten und das sind ne ganze Menge.
Ich hoffe ich habe es halbwegs verständlich ausgedrückt.
Vielen dank schonmal im Voraus
Gruss Smee
Please also mark the comments that contributed to the solution of the article
Kommentar vom Moderator Biber am Aug 22, 2011 um 19:23:39 Uhr
...sortieren und umbennen
Set /a rgc+=1#773
Content-Key: 171884
Url: https://administrator.de/contentid/171884
Printed on: April 23, 2024 at 13:04 o'clock
8 Comments
Latest comment
Aloha und willkommen im Forum!
Nun wir erhoffen uns gerade neu Neuankömmlingen eigentlich erst einmal Begrüßungen *grübel* und
Wird bei uns ungern gelesen
Du suchst Hilfe & Rat und bist
Auch wenn wir gerne fertige Skripte hinsetzen, das hier wäre mit Hilfe der Forumssuche, dem Tutorial zur Tutorial zur FOR-Schleife sowie einigen Hinterfragungen selbst zu schaffen
greetz André
P.S.: Erstmal schön alten Godzilla-Film gucken, dann kann man hier weitersehen ^_^
P.P.S.: Weitere Unterverzeichnisse unterhalb RaumX existieren nicht?
Nun wir erhoffen uns gerade neu Neuankömmlingen eigentlich erst einmal Begrüßungen *grübel* und
Vielen dank schonmal im Voraus
Wird bei uns ungern gelesen
Du suchst Hilfe & Rat und bist
Anfänger in der Batchprogrammierung
... nun, hast du selbst bereits versucht, etwas zu erstellen, wenn ja: Wie weit bist du gekommen, wo hapert es gerade?Auch wenn wir gerne fertige Skripte hinsetzen, das hier wäre mit Hilfe der Forumssuche, dem Tutorial zur Tutorial zur FOR-Schleife sowie einigen Hinterfragungen selbst zu schaffen
greetz André
P.S.: Erstmal schön alten Godzilla-Film gucken, dann kann man hier weitersehen ^_^
P.P.S.: Weitere Unterverzeichnisse unterhalb RaumX existieren nicht?
Aloha,
welchen Ansatz, ich seh keinen ... *mich umseh*
ach, was soll's der Film macht gerade gute Laune, daher spendier ich dir eben das volle Programm *gg*
Ich interpretiere also, dass es nur 13 und 85 gibt, ja?
Da der Code beim TV-gucken erstellt worden ist trotzdem getestet würde ich dennoch erst einmal Testdaten durchjagen als Enddaten ist generell sinnvoll
bei Fragen, immer raus damit
greetz André
edit passt noch nicht, habe mich verguckt, es soll ja 850 werden, nicht 8500 wie 1300 , mache gleich Korrektur auf 850 & 1300 korrigiert
edit
Achja, meinen Ansatz habe ich hier aus dem Forum, aber irgendwie ist
das dann doch alles ein bissel zu hoch für mich.
das dann doch alles ein bissel zu hoch für mich.
welchen Ansatz, ich seh keinen ... *mich umseh*
ach, was soll's der Film macht gerade gute Laune, daher spendier ich dir eben das volle Programm *gg*
Ich interpretiere also, dass es nur 13 und 85 gibt, ja?
@echo off & setlocal
set "Pfad=E:\Test"
for /d %%s in ("%Pfad%\*") do (
pushd %%s
for /f "tokens=1-3 delims=_" %%m in ('dir /b /a-d *_*_*.sor 2^>nul') do call :Ablauf %%m %%n %%o
popd
)
pause
goto :eof
:Ablauf
set "Zahl=%~n3"
set "Zahl=%Zahl:~-2%"
if %Zahl% equ 13 (set "Ordner=%1\%Zahl%00") else (set "Ordner=%1\%Zahl%0")
set "Datei=%1_%2.sor"
ren "%1_%2_%3" "%Datei%"
if not exist "%Ordner%" md "%Ordner%"
move "%Datei%" "%Ordner%">nul
goto :eof
Da der Code beim TV-gucken erstellt worden ist trotzdem getestet würde ich dennoch erst einmal Testdaten durchjagen als Enddaten ist generell sinnvoll
bei Fragen, immer raus damit
greetz André
edit
for /d
Aloha,
nun, ich habe deshalb nur nach
Deine Endstruktur unterscheidet sich deutlich vom Beispiel ...
zu
*grübel*
Willst du jetzt noch Unterteile des Raumnamens ins Unterverzeichnis oder sind diese bereits im Dateinamen enthalten?
Sind RZ nur die Räume oder auch U22?
greetz André
ich mag es nicht, wenn sich wichtige Komponenten derart drastisch ändern ...
nun, ich habe deshalb nur nach
Raum
explizit gesucht, da ich nicht sicher bin, ob in dem Verzeichnis auch andere - nicht relevante - Unterverzeichnisse vorhanden sein könnten, die dann mit abgeklappert werden - gut, das würde erst evtl. unschön, wenn die auch .sor-Dateien haben, die nicht angefasst werden sollen. Wenn dem nicht so ist, nimm einfach ^|findstr /B "Raum"
raus.Deine Endstruktur unterscheidet sich deutlich vom Beispiel ...
01HE03
R1-VS11-HE03
Willst du jetzt noch Unterteile des Raumnamens ins Unterverzeichnis oder sind diese bereits im Dateinamen enthalten?
Sind RZ nur die Räume oder auch U22?
greetz André
ich mag es nicht, wenn sich wichtige Komponenten derart drastisch ändern ...
Aloha,
jo, habe dann auch
Dann sollte das ja alles soweit passen.
Bei Fragen zur Verarbeitung etc. einfach fragen. außer es ist offensichtlich
greetz André
jo, habe dann auch
for /f
durch for /d
ersetzt, da durch Wegfallen des findstr
eine Befehlsverwendung von dir
auch nicht mehr nötig ist und so habe ich auch gleich das erste pushd
mit wegrationalisiert hat noch ein popd
am Ende gefehlt *pfeif*Dann sollte das ja alles soweit passen.
Bei Fragen zur Verarbeitung etc. einfach fragen. außer es ist offensichtlich
greetz André