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

Frage Entwicklung Batch & Shell

Mitglied: FomerMay

FomerMay (Level 1) - Jetzt verbinden

29.02.2012, aktualisiert 16:17 Uhr, 2048 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 Server
Kennwort zurücksetzten delegieren
gelöst Frage von friedlinfulWindows Server2 Kommentare

Hallo Zusammen Ich habe da eine kleine Frage und nirgends eine Antwort gefunden: Infrastruktur: Windows Server 2008 R2 Standard ...

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 ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Windows Store Apps
gelöst Frage von PeterleBWindows Server11 Kommentare

Gibt es einen Weg, auf Windows Server 2016 Windows Store Apps wie zum Beispiel die HP Smart App zu ...

Microsoft Office
Outlook Cache Mode Frage
Frage von GwaihirMicrosoft Office11 Kommentare

Hallo zusammen, bin gerade neu in der Firma und lerne hier einige neue Dinge kennen. Zum Beispiel, dass die ...

Microsoft
Erfahrungen mit Webcam over RDP gesucht
Frage von DerWoWussteMicrosoft10 Kommentare

Moin Kollegen. Bekanntlich kann man Webcams nur mit Drittanbietersoftware in RDP reinschleifen. Was nutzt Ihr dazu? Wie stabil funktioniert ...