Top-Themen

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

Errorlevel zurücksetzten

Mitglied: FomerMay

FomerMay (Level 1) - Jetzt verbinden

29.02.2012, aktualisiert 16:17 Uhr, 2058 Aufrufe, 7 Kommentare

Hi,

ich habe eine Batchdatei die Dateien verschiebt, bei einem Fehler soll eine Meldung ausgegeben werden und danach die nächste Datei verschoben werden. Ab der ersten Datei bei der Fehler auftritt wird bei allen anderen Dateien auch die Meldung ausgegeben, was natürlich daran liegt das der Errorlevel dann immer größer 0 ist. Die Frage kann ich den Errorlevel einfach mit

01.
SET errorlevel = 0
wieder auf null zurücksetzten oder gibt es "elegantere" Methoden?
Mitglied: bastla
29.02.2012 um 16:19 Uhr
Hallo FomerMay!

"Elegant" fände ich es, den fraglichen Code zu posten ...

Grüße
bastla
Bitte warten ..
Mitglied: FomerMay
29.02.2012 um 16:28 Uhr
Wenns weiterhilft:

01.
setlocal enabledelayedexpansion 
02.
FOR %%i IN (%quelle%\*.DLL) DO ( 
03.
	SET pgmname=%%~ni 
04.
	ECHO.******************************************************************************* 
05.
	ECHO.* Verschieben des Programms %%~ni                                             * 
06.
	ECHO.******************************************************************************* 
07.
	MOVE %quelle%\%%~ni.DLL %ziel% 
08.
	IF ERRORLEVEL 1 ( 
09.
		CALL :errCoDLL  
10.
	) ELSE ( 
11.
		ECHO.%%~ni.DLL wurde verschoben... 
12.
		ECHO.%DATE% %TIME:~0,8% - %%~ni.DLL uebernommen >> X:\copy_dll_log.log 
13.
14.
15.
IF "!openDir!"=="J" CALL :OpenDir  
16.
endlocal 
17.
[...] 
18.
setlocal enabledelayedexpansion 
19.
FOR %%i IN (%quelle2%\*.DLL) DO ( 
20.
	SET pgmname=%%~ni 
21.
	ECHO.******************************************************************************* 
22.
	ECHO.* Verschieben des Programms %%~ni                                             * 
23.
	ECHO.******************************************************************************* 
24.
	MOVE %quelle2%\%%~ni.DLL %ziel2% 
25.
	IF ERRORLEVEL 1 ( 
26.
		CALL :errCoDLL  
27.
	) ELSE ( 
28.
		ECHO.%%~ni.DLL wurde verschoben... 
29.
		ECHO.%DATE% %TIME:~0,8% - %%~ni.DLL uebernommen >> X:\copy_dll_log.log 
30.
31.
32.
IF "!openDir!"=="J" CALL :OpenDir  
33.
endlocal 
34.
GOTO :ende 
35.
 
36.
REM *************************************************************************************** 
37.
REM * Fehlerbehandlung                                                                    * 
38.
REM *************************************************************************************** 
39.
 
40.
:errCoDLL 
41.
ECHO.Fehler beim verschieben der DLL, sie muessen die DLL fuer das Programm %pgmname% von Hand verschieben 
42.
ECHO.%DATE% %TIME:~0,8% - %pgmname% - Fehler beim verschieben (DLL) >> X:\copy_dll_log.log 
43.
SET openDir=J 
44.
GOTO :EOF 
45.
 
46.
REM *************************************************************************************** 
47.
REM * Unterroutinen                                                                       * 
48.
REM *************************************************************************************** 
49.
 
50.
:OpenDir 
51.
%SystemRoot%\explorer.exe /e,%pfad%\ 
52.
SET openDir=N 
53.
GOTO :EOF 
54.
 
55.
[...] 
56.
 
57.
:ende 
58.
PAUSE 
59.
EXIT /b 0
hab mal alles unwichtige rausgeschnitten.

Ich würde jetzt bei der Sprungmarke :errCoDLL vor dem GOTO den Errorlevel wieder auf 0 setzten.
Bitte warten ..
Mitglied: bastla
29.02.2012 um 16:38 Uhr
Hallo FomerMay!

Ich würde es (ungetestet) für die Zeilen 7 - 13 so versuchen:
01.
    MOVE %quelle%\%%~ni.DLL %ziel% && ( 
02.
        ECHO.%%~ni.DLL wurde verschoben... 
03.
        ECHO.%DATE% %TIME:~0,8% - %%~ni.DLL uebernommen >> X:\copy_dll_log.log 
04.
    ) || ( 
05.
        CALL :errCoDLL  
06.
    )
BTW: "%DATE% %TIME:~0,8%" in der Schleife wird für alle Dateien den gleichen Timestamp liefern - Grund: keine "delayedexpansion", und für "%quelle%\%%~ni.DLL" sollte doch "%%i" genügen ...

Grüße
bastla
Bitte warten ..
Mitglied: 60730
29.02.2012 um 16:38 Uhr
moin,

ich schneid auch mal alles unwichtige raus...

24. MOVE %quelle2%\%%~ni.DLL %ziel2%
25. IF ERRORLEVEL 1 (

  • Würde ich doch so herum umgestalten...
24. MOVE %quelle2%\%%~ni.DLL %ziel2%
25. IF not exist %ziel2%\ %%~ni.DLL echo %%~ni.DLL konnte nicht nach %ziel2% verschoben werden>>error.log

und irgendwo am ende
if exist error.log echo mach mir den Hengst

Gruß
Bitte warten ..
Mitglied: FomerMay
29.02.2012 um 16:46 Uhr
Kannst du kurz erklären auf welcher Grundlage er hier
01.
MOVE %quelle% %ziel% && ( 
02.
     ECHO 
03.
     ECHO 
04.
) | | ( 
05.
     CALL 
06.
)
erkennt ob ein Fehler vorliegt oder nicht? Gerne auch ein Stichwort nachdem ich googlen und selbst nachlesen kann.
Bitte warten ..
Mitglied: bastla
29.02.2012 um 16:52 Uhr
Hallo FomerMay!

Verknüpfung zweier Anweisungen mit "&&": 2. Anweisung ausführen, wenn kein Fehler bei der 1. Anweisung, mit "||": 2. Anweisung ausführen, wenn Fehler bei der 1. Anweisung ...
http://www.microsoft.com/resources/documentation/windows/xp/all/proddoc ... oder auch
hh ms-its:%windir%\Help\ntcmds.chm::/ntcmds_shelloverview.htm
Grüße
bastla
Bitte warten ..
Mitglied: mathe172
29.02.2012 um 16:57 Uhr
Hallo,

der Code von Bastla macht folgendes:
  • Verschiebe die Datei von a nach b
  • Wenn funktioniert hast (&&), mache das in der ersten Klammer
  • Wenns nicht funktioniert hat (||), mach das in der zweiten

&& und || sind also da, um Befehle zu Verknüpfen, wobei der zweite nur bei (Miss-)Erfolg des ersten ausgeführt wird.

MfG,
Mathe172
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk

Teamviewer 12 Testversion zurücksetzten?

gelöst Frage von GeforceWindows Netzwerk4 Kommentare

Servus, ich nutze ab und an den teamviewer um freunden zu helfen. leider zeigt jetzt mein teamviewer an das ...

Batch & Shell

BatchFile mit Errorlevel

gelöst Frage von MemaAaBatch & Shell7 Kommentare

Hallo Da ich mit Batchprogrammierung nur Grundlegende Erfahrungen habe frage ich hier nach. und zwar habe ich ein Batchfile, ...

Windows 7

Windows am Abend zurücksetzten (automatisch)

Frage von dressaWindows 73 Kommentare

Hallo miteinander. Ich habe da eine Idee bei einer Bank aufgeschnappt und möchte nun Tipps einholen wie das genau ...

Exchange Server

Exchnage mit POPBeamer Zeitstempel zurücksetzten

gelöst Frage von miichiii9Exchange Server5 Kommentare

Guten Tag liebe Admins Ich wünsche euch ein gutes neues Jahr. Ich habe ein Problem mit dem Zeitstempel. Das ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 6 StundenHumor (lol)1 Kommentar

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 18 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 19 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 22 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...