thomas91
Goto Top

Einfaches Batch-File erstellen

Hallo Community,
ich möchte ein einfaches Batchfile erstellen.
Ich möchte einen Ordner von C: auf ein Netzlaufwerk kopieren.
Source= C:\Beispielordner
Finallocation= \\netzlaufwerk\Programme\SVS

Das Betriebsystem auf dem das Batch-File ausgeführt werden soll ist Windows 7 x64. Am liebesten würde ich das File per Aufgabenplanung einmal am Tag ausführen lassen. Da es sich um einen PC in einer Außenstelle handelt.

Mein Code ist folgender:

@echo off

REM Set Locations

SET source="C:\Beispielordner"
SET finallocation="\\Netzlaufwerk\Programme\SVS"

echo %source%
robocopy %source% %finallocation% /e /mir /np /Z /log:backup_log.txt


Logfile:
ROBOCOPY :: Robustes Dateikopieren fr Windows

Gestartet: Wed Nov 27 13:30:24 2013

Quelle : C:\Beispielordner\
Ziel : \\Netzlaufwerk\Programme\SVS\

Dateien : *.*

Optionen: *.* /S /E /COPY:DAT /PURGE /MIR /Z /NP /R:1000000 /W:30


2013/11/27 13:30:24 FEHLER 2 (0x00000002) Zugriff auf Quellverzeichnis C:\Beispielordner\
Das System kann die angegebene Datei nicht finden.


Es geht eigentlich um nichts großes, aber ich mach irgendwas falsch in meinem ersten Batchfile.

Vielen dank schon jetzt für eure Antworten!

MfG

Content-ID: 223092

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

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

Snowman25
Snowman25 27.11.2013 um 13:49:06 Uhr
Goto Top
Hallo @Thomas91,

Füge an deine Ordernnamen einen Backslash an, dann weiß robocopy auch, dass das Ordner sind!
Ausserdem könnten die Berechtigungen für C:\Beispielordner\ so gesetzt sein, dass robocopy keinen Zugriff darauf hat.

Gruß,
@Snowman25
Penny.Cilin
Penny.Cilin 27.11.2013 aktualisiert um 14:07:00 Uhr
Goto Top
Hm, also bei mir funktioniert das Skript ohne Fehlermeldung. OS := Windows 7 Enterprise.

@Snowman
Die Backslashes am Ende müssen nicht unbedingt angegeben werden.

[edith] vielleicht mal folgende Parameter versuchen: /e /mir /np /ZB /log:backup_log.txt


Gruss Penny.
Thomas91
Thomas91 27.11.2013 um 14:14:04 Uhr
Goto Top
hey Snowman25,

mit backslash hat es leider auch nicht funktioniert.

Ich bekomme jetzt im Logfile angezeigt das es das Zielverzeichnis nicht findet. Meine Ziel URL steht auch hinter dem Quellpfad.

SET source="C:\Beispielordner\"
SET finallocation="\\Netzlaufwerk\Programme\SVS\"

echo %source%
robocopy %source% %finallocation% /e /mir /np /ZB /log:backup_log.txt

Log:

ROBOCOPY :: Robustes Dateikopieren fr Windows

Gestartet: Wed Nov 27 14:10:31 2013

Quelle : C:\Beispielordner" \netzlaufwerk\Programme\SVS"\
Ziel -

Dateien : *.*

Optionen: *.* /S /E /COPY:DAT /PURGE /MIR /ZB /NP /R:1000000 /W:30


FEHLER: Es wurde kein Zielverzeichnis angegeben.

Einfache Syntax :: ROBOCOPY Quelle Ziel /MIR

Quelle :: Quellverzeichnis (Laufwerk:\Pfad oder \\Server\Freigabe\Pfad)
Ziel :: Zielverzeichnis (Laufwerk:\Pfad oder \\Server\Freigabe\Pfad)
/MIR :: Spiegelt eine vollst„ndige Verzeichnisstruktur.

Weitere Informationen erhalten Sie ber den Befehl "ROBOCOPY /?"


Der Befehl "/MIR" kann Dateien sowohl kopieren als auch L™SCHEN.
WinCobold
WinCobold 27.11.2013 um 14:49:04 Uhr
Goto Top
Hallo Thomas91,

irgendwo gehen deine startenden Anführungszeichen verloren. Schau dir doch mal deine SET-Befehle nochmal genau an.

Gruß
WinCobol
Penny.Cilin
Penny.Cilin 27.11.2013 um 15:31:56 Uhr
Goto Top
Hallo Thomas91,

möglicherweise musst Du die Anführunsgszeichen anders setzen.
Versuche mal folgendes:

SET source=C:\Beispielordner\
SET finallocation=\\Netzlaufwerk\Programme\SVS\

echo %source%
robocopy "%source%" "%finallocation%" /e /mir /np /ZB /log:backup_log.txt



Gruss Penny.
Thomas91
Thomas91 27.11.2013 um 15:47:32 Uhr
Goto Top
Ich habe jetzt das kleine Script von dir versucht Penny. Leider bekomme ich kein Logfile und es kopiert immer noch nicht.
MfG

Thomas
colinardo
colinardo 27.11.2013 aktualisiert um 17:15:49 Uhr
Goto Top
Hallo Thomas,
so funktioniert es bisher überall wo ich Robocopy eingesetzt habe:
SET source=C:\Beispielordner
SET finallocation=\\Netzlaufwerk\Programme\SVS
robocopy "%source%" "%finallocation%" *.* /mir /ZB /log:backup_log.txt   
Wenns bei dir damit nicht geht, scheint irgendetwas mit den Berechtigungen nicht zu stimmen oder dein Editor nutzt ein falsches Encoding.

Grüße Uwe
Thomas91
Thomas91 28.11.2013 um 08:01:20 Uhr
Goto Top
Hey Uwe,
danke noch einmal für dein Feedback.

Ich hätte da jetzt joch eine Frage zum Thema ß im Code.
Kann dies vielleicht mein Problem verursachen?

MfG Thomas
colinardo
colinardo 28.11.2013 um 08:16:51 Uhr
Goto Top
Ja, das tut es....
hier sollte das ändern der Codepge mit
chcp 1252
vor deinem Code helfen. Und danach wieder mit
chcp 850
zurückstellen.

Grüße Uwe
Thomas91
Thomas91 28.11.2013 um 09:01:19 Uhr
Goto Top
Mit folgendem Code funktioniert nun auch das Kopieren bei mir:
@echo off
REM Change chcp

chcp 1252

REM set source
  
set sourceDir=C:\Schließanlage\  
set targetDir=\\Schließanlage\Programme\Schließanlage\  
  
echo.  
echo ===== erstelle Backup von %sourceDir% =====  
echo.  
dir %sourceDir% >nul || ( echo FEHLER: Quellverzeichnis nicht gefunden. && echo %sourceDir% && goto end)   
dir %targetDir% >nul || ( echo FEHLER: Zielverzeichnis nicht gefunden - Stick nicht angesteckt?? && echo %targetDir% && goto end)   
robocopy "%sourceDir%" "%targetDir%" /R:3 /W:5 /XO /MIR    

REM change chcp back to 850

chcp 850

echo Das Backup wurde durchgeführt

Vielen Dank an alle die sich auf meine Frage gemeldet haben.