Verzeichnisnamen zum Dateinamen per Batch hinzufügen (und kopieren)
Hallo Allerseits,
Ich habe folgende Situation:
- Eine Reihe von Verzeichnissen, z.B.
Person1
Person2
Person3
(oft 20-30 Verzeichnisse)
- In jedem Verzeichnis liegen nummerierte Dateien mit identischem Namen, z.B.
Data1.txt
Data2.txt
Data3.txt
...
(oft 20-40 Dateien pro Verzeichnis)
Nun muß ich die ganzen Dateien in ein gemeinsames Verzeichnis kopieren. Da die Dateien die gleichen Namen haben, benenne ich sie um:
Verzeichnis Person1:
Data1_Person1.txt
Data2_Person1.txt
Data3_Person1.txt
...
Verzeichnis Person2:
Data1_Person2.txt
Data2_Person2.txt
Data3_Person2.txt
Und schließlich kopiere ich alles in ein gemeinsames Verzeichnis (zB. "D:\Alle Daten")
Zur Zeit mache ich alles per Hand (nur das umbenennen per rename-tool).
Ich muß das nun zur Zeit aber sooo oft machen, daß ein Batch hierfür eine Riesenerleichterung wäre. Leider bekomme ich sowas nicht hin...
Wichtig:
Der Verzeichnisname sollte am Ende sein (also Data1_person1.txt, nicht Person1_Data1.txt)
Die Nummerierung der Dateien (Data1, Data2,...) muß vor und nach dem umbenennen identisch sein (d.h. die Nummern dürfen nicht verwürfelt werden, so daß Data1.txt auf einmal zu Data2_Person1.txt wird o.ä.)
viele Grüße,
Andre
Ich habe folgende Situation:
- Eine Reihe von Verzeichnissen, z.B.
Person1
Person2
Person3
(oft 20-30 Verzeichnisse)
- In jedem Verzeichnis liegen nummerierte Dateien mit identischem Namen, z.B.
Data1.txt
Data2.txt
Data3.txt
...
(oft 20-40 Dateien pro Verzeichnis)
Nun muß ich die ganzen Dateien in ein gemeinsames Verzeichnis kopieren. Da die Dateien die gleichen Namen haben, benenne ich sie um:
Verzeichnis Person1:
Data1_Person1.txt
Data2_Person1.txt
Data3_Person1.txt
...
Verzeichnis Person2:
Data1_Person2.txt
Data2_Person2.txt
Data3_Person2.txt
Und schließlich kopiere ich alles in ein gemeinsames Verzeichnis (zB. "D:\Alle Daten")
Zur Zeit mache ich alles per Hand (nur das umbenennen per rename-tool).
Ich muß das nun zur Zeit aber sooo oft machen, daß ein Batch hierfür eine Riesenerleichterung wäre. Leider bekomme ich sowas nicht hin...
Wichtig:
Der Verzeichnisname sollte am Ende sein (also Data1_person1.txt, nicht Person1_Data1.txt)
Die Nummerierung der Dateien (Data1, Data2,...) muß vor und nach dem umbenennen identisch sein (d.h. die Nummern dürfen nicht verwürfelt werden, so daß Data1.txt auf einmal zu Data2_Person1.txt wird o.ä.)
viele Grüße,
Andre
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 275915
Url: https://administrator.de/contentid/275915
Ausgedruckt am: 25.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo andre-xs!
Unter der Annahme, dass es sich nur um eine Verzeichnisebene und nur um txt-Dateien handelt, (ungetestet) etwa so:
Die Dateinamen im Quellverzeichnis bleiben unverändert, die Dteien werden nur im Zielverzeichnis umbenannt.
Grüße
bastla
Unter der Annahme, dass es sich nur um eine Verzeichnisebene und nur um txt-Dateien handelt, (ungetestet) etwa so:
@echo off & setlocal
set "Quelle=D:\Dein Ausgangsverzeichnis"
set "Typ=txt"
set "Ziel=D:\Alle Daten"
for /d %%i in ("%Quelle%\*") do for %%a in ("%%i\*.%Typ%") do copy "%%a" "%Ziel%\%%~na_%%~nxi%%~xa">nul
Grüße
bastla
Hallo andre-xs!
1) Kopierbefehl könnte bleiben (es wird immer der komplette Dateiname - also ohne Typ - verwendet).
2) + 3) Kann mit
- es geht ja um die Ebene zwischen "%Quelle%" und "Results", daher muss diese mit %%i erfasst werden.
Grüße
bastla
1) Kopierbefehl könnte bleiben (es wird immer der komplette Dateiname - also ohne Typ - verwendet).
2) + 3) Kann mit
for /d
nicht klappen, da so ja nach Unterordnern von "%Quelle%\Results" gesucht würde - daher eher:for /d %%i in ("%Quelle%\*") do for %%a in ("%%i\Results\con_*.%Typ%") do copy "%%a" "%Ziel%\%%~na_%%~nxi%%~xa">nul
Grüße
bastla