Batch XCOPY mit Fehlermeldung - stimmen die Parameter?
Hallo Zusammen
Habe für eine Sicherung (Verschiebung) von LiveState Dateien ein Batch erstellt. Da ich persönlich sehr wenig Erfahrungen mit Batch Programmierung gemacht habe, bitte ich Euch dieses Script mal zu prüfen und evtl. weitere oder unnötige Parameter mitzuteilen.
Was möchte ich noch zusätzlich. Der Batch sollte auch noch im Testordner1 prüfen, ob Dateien älter als 3 Monate sind. Sind diese älter, sollte er diese löschen.
Hier das Script
@echo off
cls
rem
rem wird hier bei test nicht benötigt IF exist J: GOTO copy
rem
rem net use J: \\10.200.95.48\nethdd
rem :copy
rem
xcopy c:\test C:\test1 /E /Y /L
rem
rem Hier möchte ich eine Fehlerprüfung, Kopieren erfolgreich oder nicht
rem
if %errorlevel%==0 goto NOERROR
ECHO Das Kopieren ist fehlgeschlagen! >> C:\test1\log.txt
GOTO ENDE
:NOERROR
ECHO Das Kopieren war erfolgreich! >> c:\test1\log.txt
:ENDE
Besten Dank im Voraus.
Grüsse Shaby
Habe für eine Sicherung (Verschiebung) von LiveState Dateien ein Batch erstellt. Da ich persönlich sehr wenig Erfahrungen mit Batch Programmierung gemacht habe, bitte ich Euch dieses Script mal zu prüfen und evtl. weitere oder unnötige Parameter mitzuteilen.
Was möchte ich noch zusätzlich. Der Batch sollte auch noch im Testordner1 prüfen, ob Dateien älter als 3 Monate sind. Sind diese älter, sollte er diese löschen.
Hier das Script
@echo off
cls
rem
rem wird hier bei test nicht benötigt IF exist J: GOTO copy
rem
rem net use J: \\10.200.95.48\nethdd
rem :copy
rem
xcopy c:\test C:\test1 /E /Y /L
rem
rem Hier möchte ich eine Fehlerprüfung, Kopieren erfolgreich oder nicht
rem
if %errorlevel%==0 goto NOERROR
ECHO Das Kopieren ist fehlgeschlagen! >> C:\test1\log.txt
GOTO ENDE
:NOERROR
ECHO Das Kopieren war erfolgreich! >> c:\test1\log.txt
:ENDE
Besten Dank im Voraus.
Grüsse Shaby
Please also mark the comments that contributed to the solution of the article
Content-ID: 43565
Url: https://administrator.de/contentid/43565
Printed on: December 12, 2024 at 20:12 o'clock
9 Comments
Latest comment
Hallo Shaby
(...)
echo Kopieren OK ... weiter gehts ...
(...)
:END
Viele Grüsse
-= Axel =-
[Nachtrag]
(1)
Wenn du zuvor alte Dateien aufräumen willst, solltest du ein Zusatztool hernehmen - mal im Forum nach delage32 suchen.
(2)
/L beim XCOPY listet Dateien nur auf - also /L in der Zeile entfernen, wenn es "scharf" werden soll. Sofern Readonly-Dateien dabei sind, die es zu überschreiben gilt:
/K kopiert die Attribute
/H kopiert auch versteckte und Systemfiles.
Besser als ein Kopiertool wäre eine Synchronisation - z.B. mit Robocopy - da hier nur die unterschiedlichen Files kopiert werden.
Das hier mal ungeprüft als Skizze:
@echo off
cls
set sSource=c:\test
set sTarget=C:\test1
set Log=C:\meinlogfile.txt
echo %time%: räume auf ...
delage "%sSource%" [Alter_in_Tagen] [weitere Params]
echo %time%: kopiere ...
echo Das Kopieren ist fehlgeschlagen! >> "%Log%"
goto END
)
echo %time%: Skript erfolgreich abgschlossen.
:END
[/Nachtrag]
(...)
(...)
:END
Viele Grüsse
-= Axel =-
[Nachtrag]
(1)
Wenn du zuvor alte Dateien aufräumen willst, solltest du ein Zusatztool hernehmen - mal im Forum nach delage32 suchen.
(2)
/L beim XCOPY listet Dateien nur auf - also /L in der Zeile entfernen, wenn es "scharf" werden soll. Sofern Readonly-Dateien dabei sind, die es zu überschreiben gilt:
/K kopiert die Attribute
/H kopiert auch versteckte und Systemfiles.
Besser als ein Kopiertool wäre eine Synchronisation - z.B. mit Robocopy - da hier nur die unterschiedlichen Files kopiert werden.
Das hier mal ungeprüft als Skizze:
@echo off
cls
set sSource=c:\test
set sTarget=C:\test1
set Log=C:\meinlogfile.txt
echo %time%: räume auf ...
delage "%sSource%" [Alter_in_Tagen] [weitere Params]
echo %time%: kopiere ...
goto END
)
echo %time%: Skript erfolgreich abgschlossen.
:END
[/Nachtrag]
warum willst umbedingt xcopy benutzen?? geht doch auch mit copy
Weil XCopy auch Unterverzeichnisstrukturen kopieren kann - und Shaby hat ja sicherlich welche dabei.Sonst hätte er den Schalter /e (=Unterverzeichnisse) ja nicht mit angegeben.
@AxelHahn
Der dritte Parameter Deiner Freihand-Skizze ist überflüssig:
xcopy "%sSource%" "%sTarget%" C:\test1 ...
...steht ja schon in der Variablen %Target%.@Shaby
Habe den Beitrag von "Entwicklung" nach "Batch & Shell" verschoben.
Grüße
Biber
@Biber
OK, mache ich nie wieder. Oder ich mache es zu einem meiner guten Vorsätze fürs neue Jahr ;)
Axel
Der dritte Parameter Deiner Freihand-Skizze ist überflüssig
Das kommt vom Copy & Paste ...OK, mache ich nie wieder. Oder ich mache es zu einem meiner guten Vorsätze fürs neue Jahr ;)
Axel
@Axel
Oder ich mache es zu einem meiner guten Vorsätze fürs neue Jahr
Ach, dann kannst Du ihn zu meinen fast unbenutzten Vorsätzen der letzten Jahrzehnte stellen...
Moin Shaby,
ad 1)
Der Parameter /L listet nur die Dateien auf, die er kopieren würde.
Damit kann man/frau hervoragend testen (und das machen alle guten Bätcher).
Nimm den Schalter einfach raus in dem Batch, der wirklich kopieren soll.
ad 2)
DelAge braucht Dateinamen oder Wildcards ( z.B. *.*) hinter dem Verzeichnisnamen.
Statt : delage32 "%sSource%" 60
Besser: delage32 "%sSource%\*.*" 60
Gruß
Biber
ad 1)
Der Parameter /L listet nur die Dateien auf, die er kopieren würde.
Damit kann man/frau hervoragend testen (und das machen alle guten Bätcher).
Nimm den Schalter einfach raus in dem Batch, der wirklich kopieren soll.
ad 2)
DelAge braucht Dateinamen oder Wildcards ( z.B. *.*) hinter dem Verzeichnisnamen.
Statt : delage32 "%sSource%" 60
Besser: delage32 "%sSource%\*.*" 60
Gruß
Biber