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

Errorlevel liefert falsches Ergebnis zurück

Frage Entwicklung Batch & Shell

Mitglied: Fahrrad

Fahrrad (Level 1) - Jetzt verbinden

26.04.2011 um 14:48 Uhr, 3848 Aufrufe, 8 Kommentare

Hallo,

ich habe wohl ein Brett vor dem kopf.... und verzweifle an einer Errorlevel Auswertung,

Wir haben auf einem Terminal Server ein Performance Problem, sobal Word (mit bestimmten Einstellungen) geht die Prozessorauslastung hoch.

Die Einstellungen sind in der Registry unter

Software\Microsoft\Office\9.0\Word\Options des jeweiligen Benutzers (%User_SID%)

Als Variable für den jeweiligen Value Name (AutoGrammar bzw. AutoSpell) habe ich %Value% definiert

Wenn ich nun folgenden Code ausführe

REG QUERY "HKey_Users\%User_SID%\Software\Microsoft\Office\9.0\Word\Options" /v %Value%> NUL 2>&1

IF %ERRORLEVEL% EQU 1 (

REG ADD "HKey_Users\%User_SID%\Software\Microsoft\Office\9.0\Word\Options" /V %Value% /T REG_DWORD /D 0 /F

IF %ERRORLEVEL% EQU 0 ECHO Registry value data : 0x0 added

IF %ERRORLEVEL% EQU 1 ECHO Registry value data : 0x0 not added. Caution!

)

so wird bei nicht Vorhandensein zwar der Value erzeugt (eigentlich Errorlevel 0), als Ausgabe bekomme ich jedoch immer Errorlevel 1. Warum, wieso, wo liegt mein Denkfehler?

Vielen Dank für Eure Hilfe
Fahrrad
Mitglied: bastla
26.04.2011 um 14:55 Uhr
Hallo Fahrrad!

Stichwort: "delayedExpansion" ...

Vesuch es alternativ so:
01.
IF %ERRORLEVEL% EQU 1 ( 
02.
    REG ADD "HKey_Users\%User_SID%\Software\Microsoft\Office\9.0\Word\Options" /V %Value% /T REG_DWORD /D 0 /F 
03.
    IF ERRORLEVEL 1 ( 
04.
        ECHO Registry value data : 0x0 not added. Caution! 
05.
    ) ELSE ( 
06.
        ECHO Registry value data : 0x0 added 
07.
08.
)
Grüße
bastla

P.S.: Und wenn Dir hoffentlich die von mir verwendete Formatierung gefällt - das kannst Du auch (noch nachholen): http://www.administrator.de/helpsystem/detail.php?idx=20#toc28
Bitte warten ..
Mitglied: 99045
26.04.2011 um 14:58 Uhr
zu spät.
Bitte warten ..
Mitglied: Fahrrad
26.04.2011 um 15:59 Uhr
Hallo Bastla,

vielen Dank für Deine schnelle Antwort, allerdings hat sich am Fehlerverhalten bzw. der Ausgabe nichts geändert. Bei positiver Ausführung kommt immer noch

Value data 0x0 : not added.

P.S. natürlich sieht es viel schöner und übersichtlicher aus, allerdings habe ich das System dazu noch trotz Anleitung noch nicht verstanden ;o(
Bitte warten ..
Mitglied: 99045
26.04.2011 um 16:09 Uhr
Hi,

aber dass man die Formatierung im Beitrag auch nachträglich anpassen kann, das ist doch in verständlichem Deutsch geschrieben, oder?

Zwischen den einzelnen Klammern kannst du mehrere Befehle einsetzen, da fehlt wohl hinter Zeile 4 oder 5 noch ein weiterer Befehl
Wozu benötigst du die Variable überhaupt? Du kannst doch gleich den korrekten Wert einsetzen.

Gruß
Bitte warten ..
Mitglied: bastla
26.04.2011 um 16:33 Uhr
Hallo Fahrrad!

Das "System" ist relativ einfach: Eine Abfrage mit
if errorlevel 1
prüft auf einen Errorlevel >=1 ...
BTW: Warum verwendest Du eigentlich "HKey_Users\%User_SID%" und nicht "HKEY_CURRENT_USER"?

Grüße
bastla
Bitte warten ..
Mitglied: Fahrrad
27.04.2011 um 07:20 Uhr
Guten Morgen,

mit dem System meinte ich die übersichtlichere Zeilennummerierung, mit dem Errorlevel habe ich ich, denke, ich schon verstanden ;o)

Ich versuche jedem Terminalserver Benutzer die Registry-Einstellungen vorzugeben, also schaue ich nach wer ist angemeldet, suche die zugehörige SID und schreibe dann dort die Einstellungen, bei Offline Usern mache ich ich es über reg load ntuser.dat, deswegen die Verwendung "HKey_Users\%User_SID%" anstelle von "HKEY_CURRENT_USER"?.

Ich verwende die Variable Value, weil ich AutoGrammar und AutoSpell erzeugen /ändern muß.

Ich könnte mehr oder weniger auf den Errorlevel verzichten, möchte aber rein der Übersichthalber mir ausgeben lassen, ob der Wert angelegt werden mußte, schon vorhanden ist oder der Wert geändert werden mußte.

VG
Fahrrad
Bitte warten ..
Mitglied: bastla
27.04.2011 um 08:35 Uhr
Hallo Fahrrad!
mit dem Errorlevel habe ich ich, denke, ich schon verstanden ;o)
Wenn demnach der Unterschied zwischen
if errorlevel 1
und
if %errorlevel% equ 1
oder auch
if !errorlevel! equ 1
soweit klar ist, stellt sich mir nur noch die Frage, woran die korrekte Auswertung bei Dir scheitert - bei einem kurzen Test mit XP macht der oben von mir gepostete Schnipsel, was er soll ...

Grüße
bastla
Bitte warten ..
Mitglied: Fahrrad
02.05.2011 um 12:22 Uhr
Hallo bastla,

tja, was soll ich sagen, der Fehler sitzt vor dem Monitor, hatte kein

IF Errorlevel 1

stehen, sondern noch

IF %ERRORLEVEL% EQU 1

dann aknn auch nicht mit dem nachbarn klappen....

Vielen Dank & vieel Grüße
Fahrrad
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...