Per Batch Datei kopieren - aber wenn im Zielpfad bereits vorhanden nicht überschreiben sondern umbenennen
Hallo zusammen,
ich weis, dass diese Frage so ähnlich schon öfters gestellt wurde aber ich tus trotzdem nochmal
Ich hab folgendes Problem:
Ich will in einer einfachen Batch-Datei die derzeit so aussieht
eine Datei verschieben und kopieren die immer gleich lautet aber beim Verschiebe-/Kopiervorgang
soll diese Datei NUN wenn Sie bereits existent ist nicht überschrieben werden sondern evtl. umbenannt werden und auch im gleichen Verzeichnis abgelegt werden.
Ich hoffe es kann mir jemand helfen.
Danke schon man im Vriaus
Gruß
royal
ich weis, dass diese Frage so ähnlich schon öfters gestellt wurde aber ich tus trotzdem nochmal
Ich hab folgendes Problem:
Ich will in einer einfachen Batch-Datei die derzeit so aussieht
@echo ONmove c:\test\test2\protokoll_* c:\test4\copy c:\test4\protokoll_* n:\test5\
eine Datei verschieben und kopieren die immer gleich lautet aber beim Verschiebe-/Kopiervorgang
soll diese Datei NUN wenn Sie bereits existent ist nicht überschrieben werden sondern evtl. umbenannt werden und auch im gleichen Verzeichnis abgelegt werden.
Ich hoffe es kann mir jemand helfen.
Danke schon man im Vriaus
Gruß
royal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116047
Url: https://administrator.de/contentid/116047
Ausgedruckt am: 19.11.2024 um 03:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
mit folgenden Befehlen kannst du prüfen ob eine Datei existiert
if exist [Dateiname] [auszuführendes Kommando, wenn Datei existiert]
if NOT exist [Dateiname] [auszuführendes Kommando, wenn Datei nicht existiert]
du könntest dann z.B. ein goto einbauen
if exist %1 goto existiert
if NOT exist %1 goto existiertnich
und dort führst du ein rename durch
ren [dateiname] "[neuerdateiname]"
Gruß
Christian
mit folgenden Befehlen kannst du prüfen ob eine Datei existiert
if exist [Dateiname] [auszuführendes Kommando, wenn Datei existiert]
if NOT exist [Dateiname] [auszuführendes Kommando, wenn Datei nicht existiert]
du könntest dann z.B. ein goto einbauen
if exist %1 goto existiert
if NOT exist %1 goto existiertnich
und dort führst du ein rename durch
ren [dateiname] "[neuerdateiname]"
Gruß
Christian
Hallo royal,
so kann's gehen:
@echo ON
if exist c:\test\test4\protokoll_* (move c:\test\test2\protokoll_* c:\test4\protokoll_EIGENER_NAME.ERWEITERUNG) else (move c:\test\test2\protokoll_* c:\test4\)
copy c:\test4\protokoll_* n:\test5\
Die Begriffe EIGENER_NAME und ERWEITERUNG musst Du selber füllen.
Wenn möglich würde ich lieber den exakten Dateinamen abfragen und auf den Stern in der Abfrage verzichten.
Eventuell musst Du die Befehle noch in Hochkommatas stellen, wenn der Pfad oder der Dateiname Leer- oder Sonderzeichen enthält.
Gruss,
Destry
so kann's gehen:
@echo ON
if exist c:\test\test4\protokoll_* (move c:\test\test2\protokoll_* c:\test4\protokoll_EIGENER_NAME.ERWEITERUNG) else (move c:\test\test2\protokoll_* c:\test4\)
copy c:\test4\protokoll_* n:\test5\
Die Begriffe EIGENER_NAME und ERWEITERUNG musst Du selber füllen.
Wenn möglich würde ich lieber den exakten Dateinamen abfragen und auf den Stern in der Abfrage verzichten.
Eventuell musst Du die Befehle noch in Hochkommatas stellen, wenn der Pfad oder der Dateiname Leer- oder Sonderzeichen enthält.
Gruss,
Destry
Hallo Christian
if exist [Dateiname] [auszuführendes Kommando, wenn Datei
existiert]
if NOT exist [Dateiname] [auszuführendes Kommando, wenn Datei
nicht existiert]
existiert]
if NOT exist [Dateiname] [auszuführendes Kommando, wenn Datei
nicht existiert]
Dann bitte besser:
if exist Dateiname (
echo auszuführendes Kommando, wenn Datei existiert
) Else (
echo auszuführendes Kommando, wenn Datei nicht existiert
)
du könntest dann z.B. ein goto einbauen
if exist %1 goto existiert
if NOT exist %1 goto existiertnich
und dort führst du ein rename durch
ren [dateiname] "[neuerdateiname]"
In Batch muss man nicht unbedingt Spaghetti Code produzieren,if exist %1 goto existiert
if NOT exist %1 goto existiertnich
und dort führst du ein rename durch
ren [dateiname] "[neuerdateiname]"
es geht auch strukturierter mit Call :sub und Klammern.
Gruß
LotPings
PS: Schau dir doch bitte mal die Formatierungshilfe an.
Hallo LotPings,
wenn es sich um nicht mehr handel wie royal beschrieben kann er durchweg ein goto verwenden.
Denn sein ganzer Code beschränkt sich vielleicht auf 10 Zeilen.
Klar wenn es mehr wird sollte man kein goto mehr verwenden wegen der Übersichtlichkeit.
Sorry, wegen der fehlenden Formatierung
Gruß
Christian
wenn es sich um nicht mehr handel wie royal beschrieben kann er durchweg ein goto verwenden.
Denn sein ganzer Code beschränkt sich vielleicht auf 10 Zeilen.
Klar wenn es mehr wird sollte man kein goto mehr verwenden wegen der Übersichtlichkeit.
Sorry, wegen der fehlenden Formatierung
Gruß
Christian