Anhand des Dateinames, die Datei in ein anderes Verzeichnis verschieben
Hallo Liebe Forum-User,
ich habe folgendes Problem, wobei ihr mir vielleicht behilflich sein könntet.
Ich habe ein Quellverzeichnis (C:\temp), wo verschiedene Dateien liegen und ein Zielverzeichnis (D:\...).
Merkmale:
- Jede Datei fängt mit der gleichen Syntax an
- Ab dem 6 Buchstaben verändert sich der Name
Beispiel:
RDL00_n_
RDL00_k_
RDL00_o_
Nun möchte ich gerne alle Dateien aus dem Quellverzeichnis, die den Buchstaben "n" an der 6 Stelle besitzen in das Verzeichnis D:\MIT_n\ kopieren. Das gleiche mit den anderen, entsprechend in einen anderen Ordner.
Wie kann ich das am Besten lösen und habt ihr ein Lösungsansatz für mich.
Vielen Dank im Voraus für die Unterstützung.
ich habe folgendes Problem, wobei ihr mir vielleicht behilflich sein könntet.
Ich habe ein Quellverzeichnis (C:\temp), wo verschiedene Dateien liegen und ein Zielverzeichnis (D:\...).
Merkmale:
- Jede Datei fängt mit der gleichen Syntax an
- Ab dem 6 Buchstaben verändert sich der Name
Beispiel:
RDL00_n_
RDL00_k_
RDL00_o_
Nun möchte ich gerne alle Dateien aus dem Quellverzeichnis, die den Buchstaben "n" an der 6 Stelle besitzen in das Verzeichnis D:\MIT_n\ kopieren. Das gleiche mit den anderen, entsprechend in einen anderen Ordner.
Wie kann ich das am Besten lösen und habt ihr ein Lösungsansatz für mich.
Vielen Dank im Voraus für die Unterstützung.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 196963
Url: https://administrator.de/contentid/196963
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
1 Kommentar
Hallo Florian88!
Da drängt sich eine Zerlegung anhand des Trennzeichens "_" auf - ungetestet etwa:
Kurze Erklärung:
Nach dem vorübergehenden Wechsel in das Quellverzeichnis mit "
Die Verwendung von "
erspart ...
Grüße
bastla
Da drängt sich eine Zerlegung anhand des Trennzeichens "_" auf - ungetestet etwa:
@echo off & setlocal
set "Quelle=C:\temp"
set "Ziel=D:\MIT_"
pushd "%Quelle%"
for /f "tokens=1,2* delims=_" %%a in ('dir /b/a-d') do xcopy "%%a_%%b_%%c" "%Ziel%%%b\"
popd
Nach dem vorübergehenden Wechsel in das Quellverzeichnis mit "
pushd
" wird ein Inhaltverzeichnis nur mit Dateinamen erzeugt und jeder der Namen zerlegt - durch die Trennung bei "_" entstehen 3 Tokens:1 = %%a = "RDL00"
2 = %%b = "n" (oder "k" oder "o")
* = %%c = alles, was nach dem zweiten "_" noch folgt (inkl. Dateityp)
xcopy
" hat den Vorteil, dass, falls der Zielordner noch nicht existiert, dieser automatisch erstellt wird. Der Backslash am Ende der Zielangabe weist das Ziel als Verzeichnis aus, womit sich "xcopy
" die entsprechende RückfrageIst das Ziel MIT_n ein Dateiname
oder ein Verzeichnisname
(D = Datei, V = Verzeichnis)?
Grüße
bastla