Dateien mit bestimmter Endung suchen, in eine Liste schreiben, kopieren und unbenennen.
Es soll ein Verzeichnis mit allen Unterverzeichnissen durchsucht werden
Hallo,
ich würde gerne das realisieren, was im Thread Titel steht. Einen Teil habe ich schon selbst hinbekommen, bin jetzt aber ins Stocken geraten. Hier mein Code:
@echo off
setlocal
set DIR=C:\Users\admin\Desktop\test
set OUTPUTDIR=C:\results
dir /b /s *_de.properties > c:\test\test.txt
for /R %DIR% %%a in (*_de.properties) do xcopy "%%a" "%OUTPUTDIR%"
Dieser Code kopiert mir schonmal alle Dateien mit *_de.properties in mein Zielverzeichnis. Das Problem ist allerdings, das die meisten Dateien messages_de.properties heißen und in hunderten Ordern liegen. Das Batch würde also alle Dateien immer wieder überschreiben bzw hält an und fragt mich, ob ich überschreiben möchte.
Ziel ist es also die Dateien vor dem kopieren umzubenennen und ein Logfile zu erstellen, in welchem der neue Name und der alte Pfad steht, damit ich es später wieder zurückkopieren kann.
Beispiel:
Die erste messages_de.properties soll in 1_messages_de.properties unbenannt werden.
Die zweite in 2_messages_de.properties
usw.
In der Logdatei soll dann stehen:
1_messages_de.properties C:\test\1\
2_messages_de.properties C:\test\2\
usw.
Ist soetwas möglich? Wäre über jede Hilfe dankbar.
Hallo,
ich würde gerne das realisieren, was im Thread Titel steht. Einen Teil habe ich schon selbst hinbekommen, bin jetzt aber ins Stocken geraten. Hier mein Code:
@echo off
setlocal
set DIR=C:\Users\admin\Desktop\test
set OUTPUTDIR=C:\results
dir /b /s *_de.properties > c:\test\test.txt
for /R %DIR% %%a in (*_de.properties) do xcopy "%%a" "%OUTPUTDIR%"
Dieser Code kopiert mir schonmal alle Dateien mit *_de.properties in mein Zielverzeichnis. Das Problem ist allerdings, das die meisten Dateien messages_de.properties heißen und in hunderten Ordern liegen. Das Batch würde also alle Dateien immer wieder überschreiben bzw hält an und fragt mich, ob ich überschreiben möchte.
Ziel ist es also die Dateien vor dem kopieren umzubenennen und ein Logfile zu erstellen, in welchem der neue Name und der alte Pfad steht, damit ich es später wieder zurückkopieren kann.
Beispiel:
Die erste messages_de.properties soll in 1_messages_de.properties unbenannt werden.
Die zweite in 2_messages_de.properties
usw.
In der Logdatei soll dann stehen:
1_messages_de.properties C:\test\1\
2_messages_de.properties C:\test\2\
usw.
Ist soetwas möglich? Wäre über jede Hilfe dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 21.03.2012 um 09:57:20 Uhr
Dateien mit bestimmter Endung suchen, in eine Liste schreiben, kopieren und unbenennen.
Set /a rgc += 1#803
Die erste messages_de.properties soll in 1_messages_de.properties unbenannt werden.
Set /a rgc += 1#804
Content-ID: 182193
Url: https://administrator.de/forum/dateien-mit-bestimmter-endung-suchen-in-eine-liste-schreiben-kopieren-und-unbenennen-182193.html
Ausgedruckt am: 21.04.2025 um 05:04 Uhr
2 Kommentare
Neuester Kommentar
Moin daZza92,
das könnte folgende Batchdatei erledigen:
Die datei<cplist.dat> ist Auftragsliste für den Copyjob und Logbuch zugleich. Das VZ "C:\Test" muss vorhanden sein. Rest anpassen.
Viel Erfolg und freundliche Grüße von der Insel - Mario
das könnte folgende Batchdatei erledigen:
@echo off & setlocal enabledelayedexpansion
set fext=.xls
chcp 1252 > NUL
set /a i=1
for /f "delims=" %%f in ('dir /s /b *%fext%') do echo "%%f" "C:\Test\datei_!i!%fext%" >> cplist.dat & set /a i+=1
chcp 850
for /f "delims=" %%f in (cplist.dat) do xcopy.exe %%f
Die datei<cplist.dat> ist Auftragsliste für den Copyjob und Logbuch zugleich. Das VZ "C:\Test" muss vorhanden sein. Rest anpassen.
Viel Erfolg und freundliche Grüße von der Insel - Mario