shaby
Goto Top

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

Content-ID: 43565

Url: https://administrator.de/contentid/43565

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

AxelHahn
AxelHahn 02.11.2006 um 14:01:56 Uhr
Goto Top
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]
Technofreak
Technofreak 02.11.2006 um 14:11:54 Uhr
Goto Top
warum willst umbedingt xcopy benutzen?? geht doch auch mit copy
Biber
Biber 02.11.2006 um 16:48:09 Uhr
Goto Top
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
AxelHahn
AxelHahn 02.11.2006 um 17:06:05 Uhr
Goto Top
@Biber
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
Biber
Biber 02.11.2006 um 17:13:01 Uhr
Goto Top
@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...
Shaby
Shaby 02.11.2006 um 17:40:47 Uhr
Goto Top
Wow besten Dank an Euch für eure Antworten.

Hatte den ganzen Nachmittag Sitzung face-sad Werde es morgen mal austesten!

Grüsse und schönen Abend Shaby
Shaby
Shaby 03.11.2006 um 13:15:11 Uhr
Goto Top
Moin @ all

Also habe es mal versucht, bin jedoch noch auf Probleme gestossen:

back-to-topKopieren


momentanes Script


@echo off
cls


pause
echo Kopieren OK >> C:\test1\log.txt


:END

exit


back-to-topMeldung


http://666kb.com/i/aixdzogna1gwuxt71.gif



Hier kopiert er komischerweise die Dateien nicht!


back-to-toploeschen


momentanes script


@echo off
cls

rem
rem Dateien die aelter als 2 Monate sind löschen
rem


set sSource=c:\test
set sTarget=C:\test1
set Log=C:\test1\loeschenlog.txt

echo %time%: loesche ...
delage32 "%sSource%" 60

pause

:END

exit


back-to-topMeldung


http://666kb.com/i/aixe1urlupcwwl5ot.gif


Das tool delage32 habe ich im Windows Ordner hineinkopiert, funktioniert leider auch nicht!
Biber
Biber 03.11.2006 um 13:30:31 Uhr
Goto Top
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
Shaby
Shaby 03.11.2006 um 13:40:02 Uhr
Goto Top
Biber mein Held!

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.

hrr hätte ich selber drauf kommen sollen, bin halt noch nicht ein "guter" Bätcher face-wink

ad 2)
DelAge braucht Dateinamen oder Wildcards (
z.B. *.*) hinter dem Verzeichnisnamen.

Statt : delage32 "%sSource%" 60

Besser: delage32 "%sSource%\*.*"
60

Hat jetzt auch Super funktioniert - Besten Dank nochmal und fehlerfreies Wochenende!

Shaby