it-hasi
Goto Top

Robocopy im Batchlauf - Fehlermeldung - Der Befehl Robocopy ist entweder falsch geschrieben oder konnte nicht gefunden werden.

Einmal ein herzliches "Hallo" als Neuling und folgende Sache die mich nach meiner gestrigen 5 stündige (aussichtslosen) Fehlersuche schon zum verzweifeln bringt ...

Betriebssystem: Windows Vista 64-bit ... seit ca. 2 Wochen komplett neu installiert ... alle SP und Update aktuell ... installiert ist Vista, MS Office 2007, Winamp Player und ein paar kleine Toolprogramme. Sonst nichts aufregendes. Man fast sagen, das System ist noch (fast) jungfräulich. Keine Prb am Betriebssystem bekannt. Im Taskmeanger alles OK, auch hinsichtlich Performance. Im Systemmanager ebenfalls keine Vorkommnisse. Soweit so gut.

Nun zu meiner Problembeschreibung:

In einer Batchdatei kopiere (spiegle) ich mittels Robocopy ca. 50 GB persönliche Daten auf eine interne Festplatte. Das funkt auch Bestens. Zusätzlich aber sichere ich alle diese Daten auf eine externe Festplatte (My Book von Western Digital - 1,2TB) die eigentlich ein Archiv darstellt, welches unberührt bleibt und als Backup für doch gelöschte Dinge auf den internen Festplatten (der Robocopy Spiegelung) dienen sollte.

Nun zu der Batchdatei <ACF_Test (ArchivCopyFile> ... die Ablaufschritte sind folgende:

... Variablenbefüllung (getdate) für den Teil des Headers ...
... Variablenbefüllung (gettime) für den Teil des Headers ...
... Variablenbefüllung (ACF_%getdate%) welches den Namen des Archiv-Verzeichnisses mit dem Tagesdatum darstellen soll ...
... :RENAMELOG ... hier soll das alte LOG File mit dem Tagesdatum in einen Archiv-Ordner verschoben werden ...
... :HEADER ... hier wird für das LOG File das Tagesdatum mit der Uhrzeit und namentlich der Inhalt des Logs festgehalten ...
... :CREATEARCHIV ... hier wird das Archiv erstellt, bei vorhanden sein gelöscht, andernfalls erstellt ...
... :ARCHIVFILECOPY ... hier wird dann mittels mehrerer ROBOCOPY Befehle die benötigten Daten-Verzeichnisse gesichert ...
... :ERRORxxxxxx ... diverse ErrorLevel Tätigkeiten ...
... :ENDE ... hier werden noch diverse persönliche Infos hinzugefügt und fertig ...


Die Batch soll 1x im Monat laufen ... zu jedem Unterprogramm gibt es eine ERRORLEVEL-Abfrage und dementsprechend wird in einem ERROR-Teil verzweigt ... Soweit so gut ... verzeiht mir hier das Ausschweifen aber möchte einmal das Prinzip des Batches darstellen ...


DAS PROBLEM ist nun, dass bei dem Robocopy-Teil die Meldung kommt >>> Der Befehl "Robocopy" ist entweder falsch geschrieben oder konnte nicht gefunden werden. <<<


Was habe ich alles probiert:

-- div Test mit Administrator Einstellung ... kein Erfolg ...
-- Copy/Paste in ein neues Batch File ... kein Erfolg ...
-- diverse Ordner- und Fileberechtigungsänderungen ... kein Erfolg ...
-- die Batch verknüpft und den Wert "als Administrator ausführen ..." gesetzt ... kein Erfolg ...
-- stundenlanges Lesen in div Google-Vorkommnisse und anschließende Tests ... kein Erfolg ...


Dazwischen aber immer wieder den Urzustand hergestellt ... WENN man jedoch NUR den ROBOCOPY-Befehl als "Einzeiler" in einer NEUEN BATCH kopiert und diese ausführt, dann funkt es tadellos ... ebenso wenn man ein CMD-Fenster öffnet und mittels Copy/Paste diesen Einzeiler dort einfügt, detto ... alles funkt bussifein ...


NUR in der Batch NICHT ... seltsam, seltsam ... all meine anderen Batchfiles laufen aber einwandfrei ... denke aber das es sich hierbei um ein (auf einmal auftauchendes) Berechtigungsproblem handelt ... Benutzkontosteuerung ist ausgeschaltet ... Benutzerprofil wird als "Administrator" angezeigt ...


Da ich eures Forum seit ca. 2 Wochen täglich als "Hintergrund-Leser" sehr, sehr schätze, habe ich nun mein beschriebens Problem zum Anlass genommen, mich A) zu registrieren und B) mich nun an Euch zu wenden.


Ich hoffe wir können das Problem lösen, denn nicht nur die Batch ist mit einiger Arbeit geschrieben sondern ich möchte diese auch nicht aufgeben.


Was übersehe ich hier wirklich ???


Als dann, liebe Grüße von meiner Seite und ein Dankeschön im voraus,


Andreas

Content-Key: 180045

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

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: KowaKowalski
KowaKowalski 04.02.2012 um 16:14:06 Uhr
Goto Top
Hi Andreas,


auf welche Art & Weise denkst Du soll Dir nun geholfen werden?
Soll jemand erraten wie Du Dein Robocopy aufrufst?


mfg
kowa
Mitglied: IT-Hasi
IT-Hasi 04.02.2012 um 16:30:00 Uhr
Goto Top
Zitat von @KowaKowalski:
Hi Andreas,


auf welche Art & Weise denkst Du soll Dir nun geholfen werden?
Soll jemand erraten wie Du Dein Robocopy aufrufst?


mfg
kowa


OKeee ... Sorry ... vergessen ... das XCOPY funkt nicht ... das XOPY in der Schleife funkt nicht ... das COPY funkt ...

ROBOCOPY funkt auch nicht ...

So sieht das aus >>> aufgerufen wird diese Manuell ... also mit Maus-Doppelklick ...

Danke & Grüße, Andreas face-wink
....
:FCDOKUMENTE
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** QUELLE: [D:]___DATEN\---DOKUMENTE---] ***                   	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** ZIEL:   [S:]Archiv_File_Copy] ***                              >> D:\___LOGS\COPYARCHIV\Copy_.log
echo ------------------------------------------------------		>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
PAUSE
::
for /f "delims=" %%b in ('dir /b "D:\___DATEN\---DOKUMENTE---"') do xcopy /E /Y /I "D:\___DATEN\---DOKUMENTE---\%%b\*.*" "S:\ARCHIV_FILE_COPY\AFC_20120203\---DOKUMENTE---\%%b" >> D:\___LOGS\COPYARCHIV\Copy_.log  
::
if %ERRORlevel%==0 goto FCHOMEPAGE
goto ERRFCDOKUMENTE
::
::copy /Y "D:\___DATEN\---DOKUMENTE---\___Excel\*.*" "S:\ARCHIV_FILE_COPY\%afc%\---DOKUMENTE---\___Excel" >> D:\___LOGS\COPYARCHIV\Copy_.log  
::
::copy /Y "D:\___DATEN\---DOKUMENTE---\___Excel\DVD_Verzeichnis.xls" "S:\ARCHIV_FILE_COPY\%afc%\---DOKUMENTE---\___Excel" >> D:\___LOGS\COPYARCHIV\Copy_.log  
:: 
::xcopy /E /Y "D:\___DATEN\---DOKUMENTE---\___Excel\*.*" "S:\ARCHIV_FILE_COPY\%afc%\---DOKUMENTE---\___Excel" >> D:\___LOGS\COPYARCHIV\Copy_.log  
::
::robocopy /E "D:\___daten\---DOKUMENTE---" "S:\ARCHIV_FILE_COPY\%afc%\---DOKUMENTE---" >> D:\___LOGS\COPYARCHIV\Copy_.log >> D:\___LOGS\COPYARCHIV\Copy_.log  
::
pause
::


[Edit Biber] Codefragment in Codetags. [/Edit]
Mitglied: jens2001
jens2001 04.02.2012 um 17:31:53 Uhr
Goto Top
Hi,,

Schon mal versucht ROBOCOPY mit voller Pfadangabe aufzurufen?
Mitglied: IT-Hasi
IT-Hasi 04.02.2012 um 18:00:11 Uhr
Goto Top
Hi,

ich glaubs nicht ... das funkt !!!!! face-wink (?????????) ...

Sollte doch nicht so gehen ???

Dank Dir ...
Mitglied: IT-Hasi
IT-Hasi 04.02.2012 um 19:02:29 Uhr
Goto Top
Soweit alles klar ... stellt sich nur jetzt die Frage für:

Diese Test-Batchdatei - also wo der Einzeiler (DER Robocopy Befehl) steht - funkt ja ... die steht im selben Verzeichnis wie die Batch die nicht funkt ...

Beide werden manuell vom selben User gestartet ... auch habe ich sicherheitshalber alles beendet und Windows neu gestartet ... kein Erfolg ...

Wenn nun das Ganze funkt inkl. der Windows-Pfad-Angabe, frage ich mich, warum die EXE Datei als solches nicht gefunden werden kann ...

Wenn ich mir mittels des SET-Befehles dieses aufruf, bekomme ich auch den Windowspfad dort angezeigt (c:\windwos\system32) ... im PathText steht unter anderem auch (.EXE) ... usw ...

Sehr seltsam das Ganze ... na ich suche weiter ...

Danke & Grüße, Andreas face-wink
Mitglied: Hubert.N
Hubert.N 04.02.2012 um 22:34:22 Uhr
Goto Top
Moin

in der Umgebungsvariable path wird sicher nicht .exe drin stehen. Was hat .exe mit einem Pfad zu tun ??

Da ist garnichts merkwürdiges dran. Alles, was in dieser Umgebungsvariable defriniert ist, findet das Betriebssystem auch ohne genaue Pfadangabe. Das ist der einzige Sinn dieser Sache...

Und weil das so ist, kopiert man die robocopy.exe eben immer ins System32-Verzeichnis und hat die Probleme dann nicht face-smile

Gruß

Hubert
Mitglied: bastla
bastla 04.02.2012 um 22:41:31 Uhr
Goto Top
@hubertn
Vermutlich war PATHEXT gemeint ...

Aus einem Batch heraus lässt sich übrigens eine "exe", die im selben Ordner wie der Batch liegt, mit zB
"%~dp0robocopy.exe"
aufrufen ...

Grüße
bastla
Mitglied: bastla
bastla 04.02.2012 um 22:50:38 Uhr
Goto Top
Hallo IT-Hasi und willkommen im Forum!

Deine Zeile 16 ist etwas "optimistisch" - zumindest, wenn Du damit versuchen solltest, einen "Gesamt-Errorlevel" aller vorherigen "xcopy"-Vorgänge abzufragen - so wird nämlich nur der Errorlevel des letzten Kopiervorganges geprüft ...

Eine (einfache) Alternative könnte etwa so aussehen:
set "Fehler="  
for /f "delims=" %%b in ('dir /b "D:\___DATEN\---DOKUMENTE---"') do xcopy /E /Y /I "D:\___DATEN\---DOKUMENTE---\%%b\*.*" "S:\ARCHIV_FILE_COPY\AFC_20120203\---DOKUMENTE---\%%b" >> D:\___LOGS\COPYARCHIV\Copy_.log || set "Fehler=True"  
if defined Fehler goto ERRFCDOKUMENTE
Grüße
bastla
Mitglied: jens2001
jens2001 04.02.2012 um 23:38:14 Uhr
Goto Top
Meine Kenntnisse in Batch-Programmierung stammen noch aus der Zeit von DOS.
Kann also sein das ich nicht ganz up to Date bin....

Afaik:
Es ist nicht entscheidend aus welchem Verzeichnis heraus die .bat aufgerufend wird sondern in welchem Verzeichnis sich der Befehlsinterpreter zum Zeitpunkt des Unterprogrammaufrufs befindet.
Außerdem erinner ich mich das der Befehlsinterpreter sehr pingelich ist und sich gern mal verwirren lässt und Befehle anders interpretiert als gedacht.
Und da kann es leicht passieren das du plötzlich auf dem falschen Laufwerk landest.
Die Ausgabeumleitung " >> D:\___LOGS\COPYARCHIV\Copy_.log" kommt mir seltsam vor.
Zu DOS-Zeiten wurde eine Ausgabeumleitung nur mit einem ">" vorgenommen.
Mitglied: bastla
bastla 04.02.2012 um 23:44:29 Uhr
Goto Top
Hallo jens2001!
Es ist nicht entscheidend aus welchem Verzeichnis heraus die .bat aufgerufend wird sondern in welchem Verzeichnis sich der Befehlsinterpreter zum Zeitpunkt des Unterprogrammaufrufs befindet.
Grundsätzlich ja - es geht einfach darum, die "exe" zu finden; wenn das nicht über "path" geht, und sich die "exe" auch nicht im aktuellen Ordner befindet, muss der komplette Pfad angegeben werden, und dann hilft es, wenn sich die "exe" im Ordner der Batchdatei befindet, da deren Pfad eben per "%~dp0" ermittelt werden kann.
Die Ausgabeumleitung " >> D:\___LOGS\COPYARCHIV\Copy_.log" kommt mir seltsam vor.
Zu DOS-Zeiten wurde eine Ausgabeumleitung nur mit einem ">" vorgenommen.
Auch damals war es schon möglich, die Zieldatei nicht jedes Mal neu zu erstellen, sondern per ">>" den neuen Text an die bestehende Datei anzufügen ...

Grüße
bastla
Mitglied: jens2001
jens2001 04.02.2012 um 23:57:48 Uhr
Goto Top
Auch damals war es schon möglich, die Zieldatei nicht jedes Mal neu zu erstellen, sondern per ">>" den
neuen Text an die bestehende Datei anzufügen ...

Stimmt! hatte ich nicht mehr auf dem Schirm.

Gruß
Jens
Mitglied: IT-Hasi
IT-Hasi 05.02.2012 um 10:49:50 Uhr
Goto Top
Hallo Bastla (und DANKE an alle Anderen) ...




KOPIERT werden die 6 Datenelemente in >>> :FCCOPY ... :FCBMW ... :FCDOKUMENTE ... :FCHOMEPAGE ... :FCPRIVAT ... :FCTOOLS ... dazu gibt es jeweils einen Errorlevel (:ERRxxxxxx) ... in jedem dieser Elemente gibt es die nachangeführte Fehlerprüfung >>>

if %ERRORlevel%==0 goto FCTOOLS
goto ERRFCPRIVAT

... wobei bei erfolgreichem KOPIEREN in das nä Unterprogramm verzweigt wird, wenn NICHT erfolgreich, dann nach ERR_xxxxx mit ensprechender Fehlermeldung und von dort dann nach ENDE, Schlusssatz schreiben und fertig.


Hoffe einmal das ich das so einigermaßen rüber bringen konnte.


@hubertn >>> gemeint war hier das in dem PATH sehrwohl die "Windows\System32" drinnen steht und in dieser die Robocopy.exe. Dafür sorgen muss ich ja nicht, da dies ein Bestandteil von Vista ist und so und so nach der Installation des OS sich diese EXE dort befindet face-smile


@jens2001 >>> mit dem (>) schreibst man den ersten (gewollten) Satz in die LOG Datei ... mit (>>) hängt man die nachfolgenden daran ... auch beim 1.Logfileschreiben kann man (>>) verwenden ... sonst löscht man den Inhalt und schreibt immer wieder NUR den Satz in das Logfile was gerade passierte ... das mit dem Befehlsinterpreter verstehe ich so nicht, da sind meine Kenntnisse zu gering (noch ! face-wink) ... Aber einmal Danke auch an DIr ...


So ganz klar ist mir die Fehlerursache allerding noch immer nicht ... WARUM man den Windows-Pfad davorsetzen muss ... Gut ... ich grüble mal weiter ...


So dann mach ich mal weiter ... Danke Euch allen für die Unterstützung, netten Sonntag noch und Grüße,


Andreas


face-smile
Mitglied: IT-Hasi
IT-Hasi 05.02.2012 um 12:00:41 Uhr
Goto Top
Zitat von @bastla:
Hallo IT-Hasi und willkommen im Forum!

Deine Zeile 16 ist etwas "optimistisch" - zumindest, wenn Du damit versuchen solltest, einen
"Gesamt-Errorlevel" aller vorherigen "xcopy"-Vorgänge abzufragen - so wird nämlich nur der
Errorlevel des letzten Kopiervorganges geprüft ...

Eine (einfache) Alternative könnte etwa so aussehen:
set "Fehler="  
> for /f "delims=" %%b in ('dir /b "D:\___DATEN\---DOKUMENTE---"') do xcopy /E /Y /I  
> "D:\___DATEN\---DOKUMENTE---\%%b\*.*" "S:\ARCHIV_FILE_COPY\AFC_20120203\---DOKUMENTE---\%%b" >>  
> D:\___LOGS\COPYARCHIV\Copy_.log || set "Fehler=True"  
> if defined Fehler goto ERRFCDOKUMENTE
> 
Grüße
bastla


Hallo Bastla,

so hab mal deine Variante getestet ... mag ja für das DOS/COPY/XCOPY funken ... jedoch ROBOCOPY hat im Errorlevel 0 + 1 für erfolgreiches kopieren (halt mit kleinen Abweichungen) ...

Komme da aber dann in meine Fehlerroutine ... hab beide Eigenschaftsfenster kontrolliert ... da wird wirklich alles einwandfrei kopiert ... den Auszug des ERRORLEVEL`s von ROBOCOPY anbei ...

Bastle mal weiter face-wink


Nette Grüße, Andreas ... face-smile


RETURN CODEs von RoboCopy ...
HEX BIT Comments
0x10 16 Serious error. Robocopy did not copy any files. This is either a usage error or an error due to insufficient access privileges on the source or destination directories.
0x08 8 Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded). Check these errors further.
0x04 4 Some Mismatched files or directories were detected. Examine the output log. Housekeeping is probably necessary.
0x02 2 Some Extra files or directories were detected. Examine the output log. Some housekeeping may be needed.
0x01 1 One or more files were copied successfully (that is, new files have arrived).
0x00 0 No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized.
Mitglied: bastla
bastla 05.02.2012 um 19:46:51 Uhr
Goto Top
Hallo IT-Hasi!
mag ja für das DOS/COPY/XCOPY funken ... jedoch ROBOCOPY hat im Errorlevel 0 + 1 für erfolgreiches kopieren (halt mit kleinen Abweichungen) ...
... und ich hatte das, was in Deiner Zeile 14 durch die Schleife mehrfach stattfindet (und von dem in Zeile 16 nur der Errorlevel des letzten Kopiervorganges geprüft werden kann) doch glatt für "xcopy" gehalten ... face-wink

Oder nochmals deutlicher: Es ging mir darum, dass nach der Schleife nur der Errorlevel des letzten in der Schleife durchgeführten Vorganges verfügbar ist - wenn also beim zweiten von sechs Kopiervorgängen ein Errorlevel <> 0 zurückgegeben wurde, kann das Deine Zeile 16 nicht erkennen, weswegen ich vorgeschlagen hatte, nach jedem einzelnen "xcopy" den Errorlevel zu prüfen, damit auch schon beim Auftreten eines einzigen Fehlers die Variable %Fehler% nicht mehr leer ist und nach der Schleife entsprechend reagiert werden kann.

Um das Ganze für "robocopy" anzupassen, müsstest Du eben per "delayedexpansion" jeweils noch in der Schleife "!errorlevel!" mit einem "if" abfragen oder "if errorlevel" verwenden - dann aber darauf achten, dass damit auf "größer-gleich" getestet wird.

Grüße
bastla
Mitglied: Biber
Biber 05.02.2012 um 22:01:39 Uhr
Goto Top
oder, etwas anders ausgedrückt, IT-Hasi,

du bist jetzt schon schon zum zweiten Mal darauf angesprochen worden, dass du zwar im Beitragstitel immer von Robocopy erzählst, aber in den geposteten Codefragmenten gar kein Robocopy-Aufruf zu sehen ist.

Falls dein Sichere-mit-Robocopy-Schnipsel eventuell noch bis zur endgültigen Prüfung durch Patentamt und/oder Nobelpreis-Komittee unter Verschluss gehalten werden muss - okay.

Ist ja auch eine ähnlich schützenswerte innovation wie es Fernsprecher zum Selbstwählen oder Empfangsgeräte für Tonfilme sind.

Aber wir können doch nur die eventuellen Sollbruchstellen finden, die du uns hier auch postest.

Poste den ganzen Schnipsel, dann können wir schon sagen "Ja nee, Zeile 17-24 werden eh nie erreicht weil wegen.." oder ähnliches.
Und mag ja sein, dass eine Errorlevel-Abfrage einer Serie von Robocopy-Läufen wenig Sinn macht, aber dann liegt ja dennoch das erzeugte Logfile vor, in dem nach den für dich interessanten Fehlertexten gesucht werden kann.

Die Redmonder ProaktikantInnen sind da genauso berechenbar wie ihre hiesigen Unterschleißpappenheimer - das finden wir dann also schon.

Grüße
Biber
Mitglied: IT-Hasi
IT-Hasi 06.02.2012 um 06:56:45 Uhr
Goto Top
Hallo Bastla,

OK sorry für das umständliche hier ... werde deinen Vorschlag Abends mit dem XCOPY einmal testen ...

Danke & Grüße, Andreas
Mitglied: IT-Hasi
IT-Hasi 06.02.2012 um 07:03:47 Uhr
Goto Top
Hallo Biber,

und ja DU hast da auch natürlich Recht ... wir sprachen da von mehreren Dingen, Bezug nahm ich auf den Teil den ich getestet habbe ... und der war mit XCOPY ...

Fiel mir in den vergangenen Tag schon auf, das du jemand bist, der Dinge dann etwas substiler auf die Reihe kriegt ...

Um Dir da natürlich auch gerecht werden zu können, komme ich Deinem Wunsch auch nach, das ganze Fragment einmal zu posten ... face-wink


Als dann, Bitte sehr ...


Netten Tag & Gruß, Andreas ...


echo on
:: Codepage 1252 starten ... so werden die LOG Einträge auch mit den Umlauten richtig gesetzt ... 
CHCP 1252
::
::
:: getdate1 = TT-MM-JJJJ (für JobLog)
set getdate1=%date:~0,2%-%date:~3,2%-%date:~6,4%
::
:: getdate2 = JJJJMMTT (für Verzeichnisbenennung)
set getdate2=%date:~6,4%%date:~3,2%%date:~0,2%
::
set gettime=%time:~-11,2%:%time:~-8,2%:%time:~-5,2%
::
set path=S:\ARCHIV_FILE_COPY\
::
set AFC=AFC_%getdate2%
::
:: Fehlerprüfungsvariante
::set "Fehler="  
::
goto RENAMELOG
:: --------------------------------------------------





:RENAMELOG
:: -----------------------
:: Das alte Log umbenennen
:: -----------------------
echo J| move "D:\___LOGS\COPYARCHIV\Copy_.log" "D:\___LOGS\COPYARCHIV\ARCHIV\CopyArchiv_%getdate2%.log"  
::
goto HEADER






:HEADER
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo ------------------------------------------------------------------------------------------------ 	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *************************************************************** 	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo Date:	%getdate1% - %gettime%					>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *************************************************************** 	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo ------------------------------------------------------------------------------------------------ 	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** S A V E   A R C H I V   F I L E   C O P Y ***			>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** monatliches XCOPY für gelöschte Files                   	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** Jeden 1. Sonntag im Monat - Uhrzeit: 06:00:00 			>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo ------------------------------------------------------------------------------------------------ 	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
goto CREATEARCHIV






:CREATEARCHIV
::
IF EXIST "S:\ARCHIV_FILE_COPY\AFC_%getdate2%" goto DELETEDIR  
::
md "S:\ARCHIV_FILE_COPY\AFC_%getdate2%" 						>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo "S:\ARCHIV_FILE_COPY\AFC_%getdate2%" wurde erstellt ... 				>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
echo.
echo.
goto ARCHIVFILECOPY





:DELETEDIR
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo Bestehendes ARCHIV Verzeichnis [AFC_%getdate2%] wird gelöscht !!!			>> D:\___LOGS\COPYARCHIV\Copy_.log
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
for /f "delims=" %%a in ('dir /b "S:\ARCHIV_FILE_COPY\AFC_%getdate2%"') do rd /S/Q "S:\ARCHIV_FILE_COPY\AFC_%getdate2%\%%a" >> D:\___LOGS\COPYARCHIV\Copy_.log  
::
rmdir /Q "S:\ARCHIV_FILE_COPY\AFC_%getdate2%" >> D:\___LOGS\COPYARCHIV\Copy_.log  
::
if %ERRORlevel%==0 goto CREATEARCHIV
goto ERRDELETEDIR






:ARCHIVFILECOPY
goto FCCOPY
::
::
::
:FCCOPY
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** QUELLE: [D:]___DATEN\___COPY] ***                          	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** ZIEL:   [S:]Archiv_file_Copy] ***                              >> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
::
::
if %ERRORlevel%==0 goto FCBMW
goto ERRFCCOPY





:FCBMW
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** QUELLE: [D:]___DATEN\---BMW_E34---] ***                     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** ZIEL:   [S:]Archiv_file_Copy] ***                              >> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
::
::
if %ERRORlevel%==0 goto FCDOKUMENTE
goto ERRFCBMW





:FCDOKUMENTE
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** QUELLE: [D:]___DATEN\---DOKUMENTE---] ***                   	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** ZIEL:   [S:]Archiv_File_Copy] ***                              >> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
::
::
If %ERRORlevel%==0 goto FCHOMEPAGE
goto ERRFCDOKUMENTE





:FCHOMEPAGE
echo.								    	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** QUELLE: [D:]___DATEN\---MY_HOMEPAGE---] ***                 	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** ZIEL:   [S:]Archiv_File_Copy] ***                              >> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
::
::
if %ERRORlevel%==0 goto FCPRIVAT
goto ERRFCHOMEPAGE





:FCPRIVAT
echo.									>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** QUELLE: [D:]___DATEN\---P R I V A T---] ***                 	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** ZIEL:   [S:]Archiv_File_Copy] ***                              >> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
::
::
if %ERRORlevel%==0 goto FCTOOLS
goto ERRFCPRIVAT





:FCTOOLS
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** QUELLE: [D:]___DATEN\---TOOLS---] ***                       	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo *** ZIEL:   [S:]Archiv_File_Copy] ***                              >> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								     	>> D:\___LOGS\COPYARCHIV\Copy_.log
::
C:\Windows\System32\robocopy /E /LOG+:D:\___LOGS\COPYARCHIV\Copy_.log /NFL /NDL /NJH "D:\___daten\---TOOLS---" "S:\ARCHIV_FILE_COPY\%afc%\---TOOLS---"  
::|| set "Fehler=True"  
:: /NFL /NDL /NJH /NJS
if not %ERRORlevel%==2 goto ENDE
goto ERRFCTOOLS
::if defined Fehler goto ERRFCTOOLS
::goto ENDE






:ERRCREATEARCHIV
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo "FEHLER beim [:CREATEARCHIV]"							>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo Verzeichnis konnte nicht erstellt werden 						>> D:\___LOGS\COPYARCHIV\Copy_.log
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo Programm wird OHNE COPY beendet ... 						>> D:\___LOGS\COPYARCHIV\Copy_.log
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
goto ENDE





:ERRFCCOPY
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo "Fehler beim File kopieren [COPY] ... " 						>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
goto FCBMW



:ERRFCBMW
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo "Fehler beim File kopieren [BMW] ... " 						>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
goto FCDOKUMENTE



:ERRFCDOKUMENTE
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo "Fehler beim File kopieren [DOKUMENTE] ... " 					>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
goto FCHOMEPAGE



:ERRFCHOMEPAGE
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo "Fehler beim File kopieren [HOMEPAGE] ... " 					>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
goto FCPRIVAT



:ERRFCPRIVAT
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo "Fehler beim File kopieren [PRIVAT] ... " 						>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
goto FCTOOLS



:ERRFCTOOLS
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo "Fehler beim File kopieren [TOOLS] ... " 						>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
goto ENDE	




:ERRORDELETEDIR
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo "Fehler beim VZ/AFC_%getdate2% löschen ..." 					>> D:\___LOGS\COPYARCHIV\Copy_.log  
echo ------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.											>> D:\___LOGS\COPYARCHIV\Copy_.log
goto ENDE





:ENDE
echo.								>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								>> D:\___LOGS\COPYARCHIV\Copy_.log
echo ---------------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo Autor: (C) 2012 ----------                               >> D:\___LOGS\COPYARCHIV\Copy_.log
echo Datum:  03.02.2012 - 06:10                                 >> D:\___LOGS\COPYARCHIV\Copy_.log
echo ---------------------------------------------------------------------------------------	>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								>> D:\___LOGS\COPYARCHIV\Copy_.log
echo.								>> D:\___LOGS\COPYARCHIV\Copy_.log
::
PAUSE
echo :::ENDE:::							>> D:\___LOGS\COPYARCHIV\Copy_.log

[Edit Biber] Codeformatierung. [/Code]