Erstellung Batch-Datei Kopieren und Umbenennen falls vorhanden
Hallo zusammen,
dies ist mein erster Post hier und ich hoffe ihr könnt mir helfen.
Ich habe eine kleine selbstgebastelte Lösung für unsere Verwaltung entwickelt. Ohne jetzt lange drum herum zu reden, will ich gleich zum Punkt kommen.
Es liegt eine Datei in einem Ordner (C:\Programme\Sicherung\Sicherung.xxx). Diese Datei soll auf ein Serverlaufwerk verschoben werden (U:\......\Sicherungen). Da die Datei bei allen Clients (ca. 60) aber genau gleich heisst, soll in der Batch-Datei beinhaltet sein, dass beim Kopiervorgang geprüft wird, ob die Datei bereits im Zielordner vorhanden ist und wenn ja, FORTLAUFEND umbenannt (also Sicherung_1.xxx, Sicherung_2.xxx) und anschliessend in den Ordner kopiert wird, sodass ich am Ende 60 Dateien mit Sicherung_x.xxx haben sollte. Es soll also keine Datei überschrieben werden. Es muss also geprüft werden, ob der Originalname vorhanden ist und bei Bedarf die letzte fortlaufende Nummerung verwendet wird. Sollte also bereits Sicherung_15.xxx vorhanden sein, soll die Datei in Sicherung_16.xxx umbenannt werden.
Da ich mich nur rudimentär mit Batch auskenne, bekomme ich sowas leider nicht und habe bislang auch keine Anleitung für eine fortlaufende automatische Nummerierung gefunden.
Ich würde mich sehr freuen, wenn sich jemand damit auskennt und mir möglicherweise den Text für diese Batch-Datei erstellen könnte oder mir zumindest behilflich sein kann.
Falls es noch Fragen gibt, einfach melden
Vielen Dank vorab!
MFG
Sascha
dies ist mein erster Post hier und ich hoffe ihr könnt mir helfen.
Ich habe eine kleine selbstgebastelte Lösung für unsere Verwaltung entwickelt. Ohne jetzt lange drum herum zu reden, will ich gleich zum Punkt kommen.
Es liegt eine Datei in einem Ordner (C:\Programme\Sicherung\Sicherung.xxx). Diese Datei soll auf ein Serverlaufwerk verschoben werden (U:\......\Sicherungen). Da die Datei bei allen Clients (ca. 60) aber genau gleich heisst, soll in der Batch-Datei beinhaltet sein, dass beim Kopiervorgang geprüft wird, ob die Datei bereits im Zielordner vorhanden ist und wenn ja, FORTLAUFEND umbenannt (also Sicherung_1.xxx, Sicherung_2.xxx) und anschliessend in den Ordner kopiert wird, sodass ich am Ende 60 Dateien mit Sicherung_x.xxx haben sollte. Es soll also keine Datei überschrieben werden. Es muss also geprüft werden, ob der Originalname vorhanden ist und bei Bedarf die letzte fortlaufende Nummerung verwendet wird. Sollte also bereits Sicherung_15.xxx vorhanden sein, soll die Datei in Sicherung_16.xxx umbenannt werden.
Da ich mich nur rudimentär mit Batch auskenne, bekomme ich sowas leider nicht und habe bislang auch keine Anleitung für eine fortlaufende automatische Nummerierung gefunden.
Ich würde mich sehr freuen, wenn sich jemand damit auskennt und mir möglicherweise den Text für diese Batch-Datei erstellen könnte oder mir zumindest behilflich sein kann.
Falls es noch Fragen gibt, einfach melden
Vielen Dank vorab!
MFG
Sascha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 214847
Url: https://administrator.de/forum/erstellung-batch-datei-kopieren-und-umbenennen-falls-vorhanden-214847.html
Ausgedruckt am: 10.04.2025 um 21:04 Uhr
16 Kommentare
Neuester Kommentar
öhm. ich denke ungefähr so:
wahrscheinlich wird es nicht funktionieren, aber es ist ne (einigermaßen) gute grundlage.
Tschau
B-Free
Qecho off
if not exist "C:\Programme\Sicherung\rename\NUL" md "C:\Programme\Sicherung\rename"
set path1 = C:\Programme\Sicherung\
set serveradresse = ***!Hier serveradresse eintragen!***
set /p numerierung =<%path1%/letztenummer.log
set aktuellenummer = %numerierung% + 1
echo %aktuellenummer%>> %path1%/letztenummer.log
copy "C:\Programme\Sicherung\Sicherung.xxx" "C:\Programme\Sicherung\rename\Sicherung.xxx"
cd %path1%
ren %path1%\rename\Sicherung.xxx sicherung_%aktuellenummer%.xxx
::Hab kein plan ob es geht :(
net use X: \\SERVER\Freigabe
move %aktuellenummer%.xxx X:
EXIT
wahrscheinlich wird es nicht funktionieren, aber es ist ne (einigermaßen) gute grundlage.
Tschau
B-Free
Hallo sascha27283!
Das Verschieben sollte sich (ungetestet) etwa so machen lassen:
Grüße
bastla
21.08.2013 15:10 782.991 Domäne\meinbenutzername Sicherung.xxx
Der Dateiname ist also tatsächlich "personenunabhängig" ...Das Verschieben sollte sich (ungetestet) etwa so machen lassen:
@echo off & setlocal
set "Quelle=C:\Programme\Sicherung\Sicherung.xxx"
set "Zielpfad=U:\......\Sicherungen"
for %%i in ("%Quelle%") do (
set "Name=%%~ni"
set "Ext=%%~xi"
)
if not defined Name goto :eof
set /a Nr=1
:Loop
set "Ziel=%Zielpfad%\%Name%_%Nr%%Ext%"
if not exist "%Ziel%" (
move "%Quelle%" "%Ziel%"
goto :eof
)
set /a Nr+=1
goto :Loop
bastla
moin Sascha,
Wenn die Daten/Backups sowieso anonymisiert auf der Kiste Gespeichert werden sollen und Du Dir da so Sicher bist es gibt nicht zwei PCs die sich genau gleichzeitig anmelden, dann nimm "Datum_Uhrzeit_Zufallszeichenfolge_Zufallszeichenfolge.EXT"
Damit hast Du Die Daten auch schön aufgereiht im Ordner abgelegt. ''Wozu überhaupt abzählen?''
[edit] Oh doch schon zu spät.[/edit]
Gruß Phil
Wenn die Daten/Backups sowieso anonymisiert auf der Kiste Gespeichert werden sollen und Du Dir da so Sicher bist es gibt nicht zwei PCs die sich genau gleichzeitig anmelden, dann nimm "Datum_Uhrzeit_Zufallszeichenfolge_Zufallszeichenfolge.EXT"
Damit hast Du Die Daten auch schön aufgereiht im Ordner abgelegt. ''Wozu überhaupt abzählen?''
20132208_065832_A5§78#_2Qc_Backup.bin
20132208_065848_Sd0r+_ybm[_Backup.bin
20132208_070103_lökajfg_8945ewn_Backup.Bin
...
[edit] Oh doch schon zu spät.[/edit]
Gruß Phil
Hallo sascha27283!
Grüße
bastla
Die Angabe mit Domäne und Benutzername habe ich nur anonymisiert ;) da steht schon was drin.
Das meinte ich ja in Bezug auf "personenunabhängig" - es muss nicht der Rechner-/Benutzername im Dateinamen enthalten sein, um nachvollziehen zu können, von wem die Datei gespeichert wurde; demnach wäre es also eigentlich egal, ob der Name des Rechners oder Benutzers auch im Dateinamen auftaucht ...Grüße
bastla

Hi,
die Zeit könnte man bis auf die Hundertstelsekunde genau bestimmen. Ob dabei zwei oder mehr User diese Hundertstelsekunde genau treffen würden, wage ich mal zu bezweifeln. Allerdings: Ausgeschlossen ist das nicht.
Gruß
die Zeit könnte man bis auf die Hundertstelsekunde genau bestimmen. Ob dabei zwei oder mehr User diese Hundertstelsekunde genau treffen würden, wage ich mal zu bezweifeln. Allerdings: Ausgeschlossen ist das nicht.
Gruß