Batch-programm für Dateikopie und Duplikatsumbenennung
Hallo,
bin neu hier im Forum und muss mir leider mein Batch-Dateien-Wissen aus google zusammentragen.
Leider bin ich jetzt auf eine kleine Anforderung gekommen, die ich nicht lösen kann und bitte Euch um Hilfe.
Ich muss tausende von Verzeichnissen auf eine bestimmte Datei „Titelblatt*“ durchsuchen und alle diese Datein in einen einzigen Ordner reinkopieren, wo ich dann mit einem Excel Makro alle Dateien auslese und bestimmte Zellwerte in ein „Master“ Excel kopieren.
Da seit einigen Jahren alle diese Exceldateien „Titelblatt“ heißen und keine Infos mehr vom Kunden wie früher enthalten, werden im Zielverzeichnis die Dateien, welche den gleichen Namen hat, überschrieben.
D.h. ich würde gerne meinen simplen Dreizeiler unten so erweitern, dass wenn es die Datei schon gibt, die Datei mit einer fortlaufenden Nummer oder was auch immer (mir ist egal wie die Dateien heißen, nur darf keine überschrieben werden) umbenannt wird.
Vielen, vielen Dank für Eure Unterstützung.
Liebe Grüße
Joachim
SET "Startverz=\\server\Daten\Kunden"
SET "Zielverz=\\server\home\j.baader\Sammlung_Script_Titelblatt"
FOR /R "%Startverz%" %%a IN ("Titelblat*") DO copy /y "%%~a" "%Zielverz%"
bin neu hier im Forum und muss mir leider mein Batch-Dateien-Wissen aus google zusammentragen.
Leider bin ich jetzt auf eine kleine Anforderung gekommen, die ich nicht lösen kann und bitte Euch um Hilfe.
Ich muss tausende von Verzeichnissen auf eine bestimmte Datei „Titelblatt*“ durchsuchen und alle diese Datein in einen einzigen Ordner reinkopieren, wo ich dann mit einem Excel Makro alle Dateien auslese und bestimmte Zellwerte in ein „Master“ Excel kopieren.
Da seit einigen Jahren alle diese Exceldateien „Titelblatt“ heißen und keine Infos mehr vom Kunden wie früher enthalten, werden im Zielverzeichnis die Dateien, welche den gleichen Namen hat, überschrieben.
D.h. ich würde gerne meinen simplen Dreizeiler unten so erweitern, dass wenn es die Datei schon gibt, die Datei mit einer fortlaufenden Nummer oder was auch immer (mir ist egal wie die Dateien heißen, nur darf keine überschrieben werden) umbenannt wird.
Vielen, vielen Dank für Eure Unterstützung.
Liebe Grüße
Joachim
SET "Startverz=\\server\Daten\Kunden"
SET "Zielverz=\\server\home\j.baader\Sammlung_Script_Titelblatt"
FOR /R "%Startverz%" %%a IN ("Titelblat*") DO copy /y "%%~a" "%Zielverz%"
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4099898019
Url: https://administrator.de/forum/batch-programm-fuer-dateikopie-und-duplikatsumbenennung-4099898019.html
Ausgedruckt am: 03.04.2025 um 05:04 Uhr
3 Kommentare
Neuester Kommentar
Moin Joachim,
na dann mal herzlich Willkommen!
Und zudem auch am einfachsten umzusetzen.
Alternativ in Powershell:
Warum PowerShell und nicht Batch?
Powershell - Leitfaden für Anfänger
Gruß Thomas
na dann mal herzlich Willkommen!
Und zudem auch am einfachsten umzusetzen.
@echo off
SET "Startverz=\\server\Daten\Kunden"
SET "Zielverz=\\server\home\j.baader\Sammlung_Script_Titelblatt"
FOR /R "%Startverz%" %%a IN ("Titelblat*") DO call :copy "%%~a"
goto :EoF
:copy
set zeit=%~t1
set zeit=%zeit:~6,4%-%zeit:~3,2%-%zeit:~0,2%_%zeit:~-5,2%-%zeit:~-2,2%
copy "%~1" "%Zielverz%\%~n1_%zeit%%~x1"
Alternativ in Powershell:
$Startverz = "\\server\Daten\Kunden"
$Zielverz = "\\server\home\j.baader\Sammlung_Script_Titelblatt"
Foreach ($File in Get-Childitem -Recurse -File "$Startverz\Titelblat*") {
copy $File "$Zielverz\$($File.BaseName)_$($File.LastWriteTime.ToString("yyyy-MM-dd_HH-mm"))$($File.Extension)"
}
Powershell - Leitfaden für Anfänger
Gruß Thomas