Robocopy Fehler 123 bei automatisiertem PST Backup
Hi,
nachdem ich mir bereits viele nützliche Tipps auf dieser Seite für Batchfiles etc. geholt habe, stelle ich nun selbst eine Frage da ich entweder falsch danach Suche oder diese einfach nicht existiert.
Schreibe gerade an einer Batchfile zur Sicherung aller lokalen Daten der User auf ein extra dafür angelegtes Share.
Funktioniert alles soweit so gut, jedoch hapert es bei der von mir eingebauten Funktion zur automatischen Suche von .pst Dateien und deren anschließende Sicherung.
Hier nun ein kleiner Auszug aus besagter Batchdatei.
Ich will bei diesem Vorgang alle Lokal befindlichen Outlook-Archivdateien finden und diese dann sichern, wobei hier die gesamte Ordnerstruktur mitkopiert werden soll um : 1. dem User einen Prompt zu ersparen, 2. sollten gleichnamige Dateien vorhanden sein (z.B. Archiv.pst) die aber dann meist in Ordnern wie z.B. 2008,2009,2010... etc liegen, eben durch die Kopie der Ordnerstruktur nicht kollidieren zu lassen.
Allerdings spuckt mir hier robocopy den Fehler 123 aus.
Siehe auszug aus LOG
Der Fehler ist ersichtlich, er will hier auf ein Verzeichnis zzgreiffen das nicht vorhanden sein kann, da besagte Datei - eben eine solche ist.
Komme leider nicht auf einen grünen Zweig, hatte dieses kurze Skriptstückchen von irgendeiner Webseite, hier war es mit xcopy gelöst, da ich aber auch hier keinen Weg gefunden habe die Ordnerstruktur ordentlich zu übertragen habe ich auf robocopy umgesattelt.
Ich bitte um eure Hilfe.
lg
nachdem ich mir bereits viele nützliche Tipps auf dieser Seite für Batchfiles etc. geholt habe, stelle ich nun selbst eine Frage da ich entweder falsch danach Suche oder diese einfach nicht existiert.
Schreibe gerade an einer Batchfile zur Sicherung aller lokalen Daten der User auf ein extra dafür angelegtes Share.
Funktioniert alles soweit so gut, jedoch hapert es bei der von mir eingebauten Funktion zur automatischen Suche von .pst Dateien und deren anschließende Sicherung.
Hier nun ein kleiner Auszug aus besagter Batchdatei.
:PST
set dir=c:\
set file=*.pst
set endung=.pst
set ms=%time:~9,2%
set zeit=%date%_%ms%ms
for /r "%dir%" %%i in ("%file%") do (
if exist %%i robocopy "%%i" "%bckdrv%%bckdir%\%%~ni%endung%_%zeit%" /E)
goto Sicherung
Allerdings spuckt mir hier robocopy den Fehler 123 aus.
Siehe auszug aus LOG
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
-------------------------------------------------------------------------------
Started : Wed Apr 20 11:19:32 2011
Source : C:\Users\001150594\Desktop\pstpst.pst\
Dest : x:\001150594\pstpst.pst_20.04.2011_79ms\
Files : *.*
Options : *.* /S /E /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
2011/04/20 11:19:32 ERROR 123 (0x0000007B) Accessing Source Directory C:\Users\001150594\Desktop\pstpst.pst\
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Komme leider nicht auf einen grünen Zweig, hatte dieses kurze Skriptstückchen von irgendeiner Webseite, hier war es mit xcopy gelöst, da ich aber auch hier keinen Weg gefunden habe die Ordnerstruktur ordentlich zu übertragen habe ich auf robocopy umgesattelt.
Ich bitte um eure Hilfe.
lg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Dani am 20.04.2011 um 11:39:52 Uhr
Formatierungen hinzugefügt.
Content-ID: 164959
Url: https://administrator.de/contentid/164959
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
22 Kommentare
Neuester Kommentar
Hallo mosepe und willkommen im Forum!
Versuch es mit der folgenden Zeile 8
(die ich allerdings gleich an die Zeile 7 anfügen würde) ...
[Edit] Da als Ziel ja ein Ordner angegeben wird, eher:
[/Edit]
Mit
BTW: Das "
Grüße
bastla
[Edit] Anmerkung: Ursprünglich wurde "
[/Edit]
Versuch es mit der folgenden Zeile 8
robocopy "%%~dpi" "%bckdrv%%bckdir%\%%~ni%endung%_%zeit%" *%endung% /E)
[Edit] Da als Ziel ja ein Ordner angegeben wird, eher:
robocopy "%%~dpi" "%bckdrv%%bckdir%_%zeit%" *%endung% /E)
Mit
"%%~dpi"
wird nicht der Pfad der Datei selbst, sondern der des Ordners, in dem sie sich befindet, verwendet (siehe dazu "for /?
", ziemlich gegen Ende).BTW: Das "
if
" vorneweg war sinnfrei, da die Zeile 8 nur ausgeführt wird, wenn eine passende Datei gefunden wurde ...Grüße
bastla
[Edit] Anmerkung: Ursprünglich wurde "
xcopy
" verwendet - damit war auch ein Umbenennen der Datei möglich; mit "robocopy
" werden allerdings grundsätzlich Ordner kopiert - Alternative:xcopy "%%i" "%bckdrv%%bckdir%\%%~nxi_%zeit%*")
Hallo,
das Problem wird sein, das Robocopy nur Verzeichnisse aber keine einzelnen Files kopieren kann. Die pst datei musst Du mit dem Schalter "/XF" einbinden. Also ungefähr so:
robocopy "%%i" "%bckdrv%%bckdir%\%%~n /XF: *.%endung" /E
Aus dem Kopf raus, habe es jetzt allerdings nicht ausprobiert.
Gruß
ackerdiesel
das Problem wird sein, das Robocopy nur Verzeichnisse aber keine einzelnen Files kopieren kann. Die pst datei musst Du mit dem Schalter "/XF" einbinden. Also ungefähr so:
robocopy "%%i" "%bckdrv%%bckdir%\%%~n /XF: *.%endung" /E
Aus dem Kopf raus, habe es jetzt allerdings nicht ausprobiert.
Gruß
ackerdiesel
Hi,
nimm mal in Zeile 7 und 8 die Backslashes am Ende des Pfades weg.
Gruß
nimm mal in Zeile 7 und 8 die Backslashes am Ende des Pfades weg.
Gruß
Aloha,
warum robocopy?
Wenn ich das richtig sehe, kopierst du damit nur Dateien, da
Wobei robocopy wahrscheinlich nur den letzten Eintrag kopieren wird, nehme ich an ...
Ich bin mir momentan nicht sicher, kann robocopy einfach nur Datei zu Zielverzeichnis kopieren?
Warum hast du xcopy (darauf ist der code eher ausgelegt - siehe das EDIT bei bastla) nicht gelassen?
An sich kann ich den Fehler, warum robocopy backslashes hinzufügt nicht nachvollziehen ... eventuell macht es das aber wirklich, weil es generell auf Verzeichnisse ausgelegt ist ...
greetz André
warum robocopy?
Wenn ich das richtig sehe, kopierst du damit nur Dateien, da
%%i
doch folgende Informationen enthält:C:\Irgend\Ein\Pfad\Datei.pst
C:\Irgend\Ein\Anderer\Pfad\Datei.pst
C:\Irgend\Wo\Datei.pst
Wobei robocopy wahrscheinlich nur den letzten Eintrag kopieren wird, nehme ich an ...
Ich bin mir momentan nicht sicher, kann robocopy einfach nur Datei zu Zielverzeichnis kopieren?
Warum hast du xcopy (darauf ist der code eher ausgelegt - siehe das EDIT bei bastla) nicht gelassen?
An sich kann ich den Fehler, warum robocopy backslashes hinzufügt nicht nachvollziehen ... eventuell macht es das aber wirklich, weil es generell auf Verzeichnisse ausgelegt ist ...
greetz André
Speziell für mosepe
Auch du könntest die Formatierungshilfe im Eingabefenster nutzen, um den Formatierungen in den Beiträgen auszugeben.
Auch du könntest die Formatierungshilfe im Eingabefenster nutzen, um den Formatierungen in den Beiträgen auszugeben.
[OT] @99045
Im Prinzip ja.
Aber bei diesem Prachtstück sieht es auch codeformatiert grottig aus
[/OT]
P.S.
Zitat von @99045:
Speziell für mosepe
Auch du könntest die Formatierungshilfe im Eingabefenster nutzen, um den Formatierungen in den Beiträgen auszugeben.
Speziell für mosepe
Auch du könntest die Formatierungshilfe im Eingabefenster nutzen, um den Formatierungen in den Beiträgen auszugeben.
Im Prinzip ja.
Aber bei diesem Prachtstück sieht es auch codeformatiert grottig aus
@echo off
REM Variablen Setzen
set dir=c:\
REM !!BITTE ENTSPRECHEND ANPASSEN!!
set file=*.pst
set endung=.pst
set pfad=C:\Data
REM Erstellung der Zeitvariable
set h=%time:~0,2%
set m=%time:~3,2%
set s=%time:~6,2%
set ms=%time:~9,2%
set zeit=%date%_%h%h%m%m%s%s%ms%ms
REM Sucht nach Dateien und kopiert diese in einen Unterordner im oben angegebenen
REM Verzeichnis. Der Name des Unterordner Setzt sich aus
REM "Dateiname_Dateiendung_Datum_Uhrzeit mit milisekunde" zusammen.
for /r "%dir%" %%i in ("%file%") do (
if exist %%i xcopy "%%i" "%pfad%\%%~ni%endung%_%zeit%\" /V /S /I)
P.S.
set zeit=%date%_%h%h%m%m%s%s%ms%ms
*laaaaaaaaaaaaaaaaaaaaach*