Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 1691 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 ..
Ähnliche Inhalte
Verschlüsselung & Zertifikate
Externe Laufwerke verschlüsseln (8)

Frage von uridium69 zum Thema Verschlüsselung & Zertifikate ...

Festplatten, SSD, Raid
Ich kann meine externe Festplatte nicht mehr öffnen! (22)

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

Batch & Shell
Dateien von Wechsel Datenträger auf Festplatte kopieren (2)

Frage von DonJoe zum Thema Batch & Shell ...

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

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

Neue Wissensbeiträge
Mac OS X

Apple hat macOS High Sierra veröffentlicht

(1)

Information von Frank zum Thema Mac OS X ...

Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(4)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(7)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows 10
gelöst Netzwerkkarte schaltet sich erst nach dem Logon ein (24)

Frage von DerWoWusste zum Thema Windows 10 ...

Windows Server
Seit IP Umstellung DC DNS Fehler (22)

Frage von Yaimael zum Thema Windows Server ...

Grafik
gelöst CAD Arbeitsplätze (17)

Frage von Diddi93 zum Thema Grafik ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (16)

Frage von Voiper zum Thema Weiterbildung ...