Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Laufwerk auf externe Festplatte kopieren mit Rückgabe eines Errorlevels

Frage Entwicklung Batch & Shell

Mitglied: Exzel

Exzel (Level 2) - Jetzt verbinden

22.10.2014, aktualisiert 23.10.2014, 1611 Aufrufe, 5 Kommentare

Hallo zusammen,

ich habe eine Batch geschrieben, in der mit Hilfe von Fastcopy eine Festplatte auf eine von drei externen kopiert werden. Die Laufwerksbuchstaben sind den externen Festplatten fest zugeordnet.


REM Parameter von Fastcopy
SET Parameter=c:\Computer\Scripts\fastcopy.exe /cmd=sync /force_close /open_window /log /speed=full

IF EXIST T: %Parameter% "S:\" /to="T:\"
IF EXIST U: %Parameter% "S:\" /to="U:\"
IF EXIST V: %Parameter% "S:\" /to="V:\"

Funktioniert zwar einwandfrei aber leider erhalte ich keinen Rückgabewert, falls keines der Laufwerke erreichbar ist bzw. Kopiervorgang scheitert. Die Batch ist bei True Image als Nach-Befehl hinterlegt, aber egal ob ein Laufwerk vorhanden ist oder nicht es wird immer angezeigt, dass die Batch korrekt durchlief. Der Kopiervogang ist aber dann gescheitert.

Für mich stellt sich jetzt die Frage, ob Fastcopy überhaupt ein errorlevel zurückgibt und wie ich dieses Abfragen kann, sodass True Image einen Fehler melden würde, fall der Kopiervorgang scheitert. Oder muss ich auf ein anderes Programm umsteigen?


Gruß und Dank!

6882513fbe2efd586f22e05126335e0a - Klicke auf das Bild, um es zu vergrößern
Mitglied: 114757
22.10.2014, aktualisiert 24.10.2014
nimm doch robocopy, ungefähr so
01.
IF EXIST T: set drive=t: & goto copy 
02.
IF EXIST U: set drive=u: & goto copy 
03.
IF EXIST V: set drive=v: & goto copy 
04.
goto :ERROR 
05.
:copy 
06.
ROBOCOPY S: %drive% *.* /MIR /COPYALL 
07.
IF %ERRORLEVEL% LSS 8 goto OK 
08.
:ERROR 
09.
exit /b 1 
10.
:OK 
11.
exit /b 0
Bitte warten ..
Mitglied: Friemler
22.10.2014 um 20:53 Uhr
Hallo Exzel,

Exit Codes von Programmen können über die in Batchscript vordefinierte Variable %ErrorLevel% oder in der Form
if errorlevel 2 goto xyz
abgefragt werden. Bei der zuletzt genannten Variante darf errorlevel nicht in Prozentzeichen eingeschlossen werden, es dürfen nicht die üblichen Vergleichsoperatoren verwendet werden und die Bedingung ist (in obigem Beispiel) erfüllt, wenn der Exit Code des zuletzt ausgeführten Befehls größer oder gleich 2 ist. Die Auswertung von errorlevel muss deshalb beim größtmöglichen Wert beginnen und mit dem kleinsten Wert aufhören (siehe Beispiel unten). Mit %ErrorLevel% kann hingegen ganz normal wie mit jeder anderen Batchscript-Variablen gearbeitet werden.

Um zu testen, ob FastCopy einen aussagekräftigen Exit Code liefert, führe es in einer Batchdatei durch einen Direktaufruf aus, ohne umgebenden Code. Übergib dabei Parameter, die auf jeden Fall zu einem Fehlschlag des Kopiervorgangs führen müssen (nicht existierendes Quellverzeichnis o.ä.). Das könnte dann ungefähr so aussehen:
01.
C:\Computer\Scripts\fastcopy.exe "s:\gibt_es_nicht" /to="T:\gibt_es_auch_nicht" 
02.
if errorlevel 4 (echo Exit Code größer oder gleich 4 & goto :eof) 
03.
if errorlevel 3 (echo Exit Code größer oder gleich 3 & goto :eof) 
04.
if errorlevel 2 (echo Exit Code größer oder gleich 2 & goto :eof) 
05.
if errorlevel 1 (echo Exit Code größer oder gleich 1 & goto :eof) 
06.
echo Exit Code ist 0
Gruß
Friemler
Bitte warten ..
Mitglied: Exzel
23.10.2014 um 10:52 Uhr
Hallo zusammen,

herzlichen Dank für Eure schnelle Hilfe.

Im Screenshot habe ich nun mal das Ergebnis von Fastcopy veröffentlicht. Sieht so aus als würde es kein errorlevel zurückgeben. Sehe ich das richtig?

Wenn ja, dann versuche ich es mit robocopy.

Gruß
Bitte warten ..
Mitglied: Friemler
23.10.2014 um 10:55 Uhr
Hallo Exzel,

tja, das sieht in der Tat schlecht aus. Nimm robocopy.

Gruß
Friemler
Bitte warten ..
Mitglied: Exzel
23.10.2014 um 15:50 Uhr
Hallo,

man o man. Jetzt habe ich das o.g. Script mit Robocopy verwendet und dennoch wird immer die korrekte Ausführung des Scripts angezeigt. Einziger Unterschied ist, dass ich die Anführungszeichen bei den Laufwerken weggelassen habe da das Script sonst nicht lief.

IF EXIST T: set drive=t:\ & goto copy
IF EXIST U: set drive=u:\ & goto copy
IF EXIST V: set drive=v:\ & goto copy
goto :ERROR
:copy
ROBOCOPY S:\ %drive% *.* /MIR /COPYALL
IF %ERRORLEVEL% LSS 8 goto OK
:ERROR
exit /b 1
:OK
exit /b 0


Ich habe nun im Acronis Forum mal nachgefragt, wie der Rückgabewert von True Image gewertet wird. Mal sehen....

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
VB for Applications
gelöst Xml-Datei laden bzw. auf Festplatte kopieren und per VBA in eine Access-Tabelle speichern (22)

Frage von machohunk zum Thema VB for Applications ...

LAN, WAN, Wireless
Kein Zugriff im Netzwerk auf externe Festplatte (2)

Frage von achklein zum Thema LAN, WAN, Wireless ...

Festplatten, SSD, Raid
gelöst Fehlerhafte externe Festplatte reparieren , teilweise funktionsfähig (13)

Frage von ftoklu zum Thema Festplatten, SSD, Raid ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...