chrism73
Goto Top

Nicht überschreiben sondern umbenennen

Hallo ich sollte ein Skript erstellen unter Windows 2003 Server,
eine Datei soll mit move auf einen anderen Server (Netzlaufwerk)
verschoben werden. Wenn dort jedoch die Datei (Dateiname.000) vorhanden ist,
sollte diese nicht überschrieben werden sondern in Dateiname.001 umbenannt werden.
Wer kann mir helfen das Skript zu erstellen?

Content-ID: 97017

Url: https://administrator.de/forum/nicht-ueberschreiben-sondern-umbenennen-97017.html

Ausgedruckt am: 23.12.2024 um 08:12 Uhr

CondCPP
CondCPP 16.09.2008 um 10:01:56 Uhr
Goto Top
Das prüfen ist mit "if exist" möglich:

if exist Dateiname.000 ( rename Dateiname.000 Dateiname.001)
ChrisM73
ChrisM73 16.09.2008 um 10:08:18 Uhr
Goto Top
dazu müsste ich also:
1. zuerst in das verzeichnis wechseln,
2. dann prüfen,
3. zurück ins verzeichnis wo die zu kopierende Datei liegt und
4. dann den Move auführen?
CondCPP
CondCPP 16.09.2008 um 10:25:17 Uhr
Goto Top
nicht zwingend, ich würde den Pfad in einer Variablen speichern und dann die Datei inklusive Pfad prüfen...
also:

set Pfad=c:\usw\
if exist %Pfad%Dateiname.000 (rename Dateiname.000 Dateiname.001)
ChrisM73
ChrisM73 16.09.2008 um 10:49:19 Uhr
Goto Top
geht das auch mit ner Freigabe?
also:
set Pfad= \\Server\freigabe
ChrisM73
ChrisM73 16.09.2008 um 11:05:55 Uhr
Goto Top
hm also das hat jez funktioniert, allerdings wurde jetzt die datei umbennannt die kopiert werden soll.
es wäre besser wenn die datei in dem Verzeichnis umbenannt wird in das kopiert werden soll.

mein Skript sieht bis jez so aus:

set Pfad=\\Freigabe\
if exist %Pfad%Dateiname.000 (rename Dateiname.000 Dateiname.001)
move lokales verzeichnis\Dateiname.000 \\Freigabe
CondCPP
CondCPP 16.09.2008 um 11:30:50 Uhr
Goto Top
es müsste gehen mit
if exist %Pfad%Dateiname.000 (rename %Pfad%Dateiname.000 %Pfad%Dateiname.001)


das ganze also


set Lokal=lokales verzeichnis\
set Pfad=\\Freigabe\
if exist %Pfad%Dateiname.000 (rename %Pfad%Dateiname.000 %Pfad%Dateiname.001)
move %Lokal%Dateiname.000 %Pfad%
ChrisM73
ChrisM73 16.09.2008 um 12:29:44 Uhr
Goto Top
hm ich habs angepasst, aber der kopierts nur rüber und benennt die andere Datei nicht um.
wo könnte der Fehler liegen? Ich habs dreimal verglichen, und kann keinen Fehler entdecken...
bastla
bastla 16.09.2008 um 12:53:40 Uhr
Goto Top
Hallo ChrisM73!

Wenn es also offensichtlich nur darum geht, eine bereits bestehende Version der Datei "Dateiname.000" als Sicherung mit dem Namen "Dateiname.001" zu behalten, könnte das so aussehen:
@echo off & setlocal
set "Quelle=D:\Quellverzeichnis"  
set "Ziel=\\Server\Freigabe\Verzeichnis"  
set "Datei=Dateiname"  

if exist "%Ziel%\%Datei%.000" move "%Ziel%\%Datei%.000" "%Ziel%\%Datei%.001"  
move "%Quelle%\%Datei%.000" "%Ziel%\"  
Das "move" in der Zeile 6 erledigt das Umbenennen und Löschen einer ev schon vorhandenen "Dateiname.001" in einem "Arbeitsgang".

Grüße
bastla
ChrisM73
ChrisM73 16.09.2008 um 15:26:49 Uhr
Goto Top
hey super, so hat es geklappt, vielen Dank face-wink