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

Errorlevel liefert falsches Ergebnis zurück

Frage Entwicklung Batch & Shell

Mitglied: Fahrrad

Fahrrad (Level 1) - Jetzt verbinden

26.04.2011 um 14:48 Uhr, 3879 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 ..
Ähnliche Inhalte
Apache Server
Apache2 als Reverse Proxy liefert die falsche Seite zurück

Frage von liquidbase zum Thema Apache Server ...

Outlook & Mail
Outlook Suche liefert kein Ergebnise mehr (9)

Frage von Bjoern-B zum Thema Outlook & Mail ...

Java
gelöst Zurück zum Schleifenanfang (4)

Frage von Todybear zum Thema Java ...

DNS
Nslookup gibt falschen DNS Namen zurück (3)

Frage von ultrapottoti zum Thema DNS ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Installation
Windows 10 neu installieren (12)

Frage von imebro zum Thema Windows Installation ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...