Registry auslesen (Bachtprogrammierung/Scripting )

  • #1
J

joern

Mitglied
Themenersteller
Dabei seit
12.03.2003
Beiträge
18
Reaktionspunkte
0
Hey zusammen,

ich bastele schon seit einiger Zeit an einem Problem bezüglich Batchprogrammierung. Vielleicht kann mir von Euch jemand helfen. Also?..
Ich möchte auf mehreren Rechnern einen Wert aus der Registry auswerten. Ist der Wert vorhanden, möchte ich den Computernamen in die Datei ?Erfolg.txt? schreiben. Ist der Wert nicht vorhanden möchte ich den Computernamen in die Datei ?Fehler.txt? schreiben. Den Computernamen habe ich vorher durch eine andere Batchdatei (im Script die Variable ?%1?) übergeben. Ich muss diesen also nicht noch zusätzlich auslesen und kann den Computernamen direkt in eine der beiden Dateien schreiben.
Mit folgendem Script bin ich nur teilweise zum Erfolg gekommen (Teil1):
reg query \\%1\HKLM\Software\Adobe\Acrobat Reader\6.0\Language /v UI
if errorlevel 0 echo %1 >>D:\BatchRegistry\Erfolg.txt
if errorlevel 1 echo %1 >>D:\BatchRegistry\Fehler.txt

Ist der Eintrag vorhanden, bekomme ich den Computernamen in der Datei ?Erfolg.txt? geschreiben ?funktioniert also. Ist der Eintrag nicht vorhanden, bekomme ich einen Eintrag des Computernamens in beiden Dateien ?Erfolg.txt? und ?Fehler.txt?. Der Errorlevel wird also nicht richtig verarbeitet, da der Computername nur in die Datei ?Fehelr.txt? hätte geschrieben werden dürfen.

Erweitere ich das Script um folgenden Eintrag (Teil2)
echo %errorlevel% %1 >>D:\BatchRegistry\ErLev.txt
wird der richtige Errorlevel mit dem dazugehörenden Computernamen richtig in die Datei ?ErLev.txt? eingetragen!!!

Warum funktioniert der erste Teil nicht???

Hat jemend einen Tip oder kann mit ein anderes Script oder VB-Code für die Auswertung zur Verfügung stellen?

Danke von einem etwas genervten MS-Anwender :)
 
  • #2
versuchs mal so:

reg query \\%1\HKLM\Software\Adobe\Acrobat Reader\6.0\Language /v UI
if not errorlevel 1 goto ERFOLG
echo %1 >>D:\BatchRegistry\Fehler.txt
:ERFOLG
echo %1 >>D:\BatchRegistry\Erfolg.txt

greetz

hugo
 
  • #3
Hallo Hugo,

... nein, es tritt der gleiche Fehler auf wie bei meinem Script. Es kommt zu einem Eintrag in beiden Dateien, wenn der Reg-Key nich vorhanden ist.

Schade :-( aber trotzdem danke
 
  • #4
Hallo joern,

vertausche einfach mal die beiden errorlevel-Zeilen, errorlevel vergleicht nämlich grösser gleich
 
  • #5
versuchs mal so:

reg query \\%1\HKLM\Software\Adobe\Acrobat Reader\6.0\Language /v UI
if not errorlevel 0 goto FEHLER
echo %1 >>D:\BatchRegistry\Erfolg.txt
:FEHLER
echo %1 >>D:\BatchRegistry\FEHLER.txt

greetz

hugo
 
  • #6
Hallo nochmal,

ich habe das Script noch mal geändert. Es verhällt sich so wie vorher (Eintragung in beide Dateien wenn Fehler vorliegt).
Selbst wenn ich das Script wie folgt abändere, bleibt der Fehler der Gleiche:

reg query \\%1\HKLM\Software\Adobe\Acrobat Reader\6.0\Language /v UI
if not errorlevel 0 goto FEHLER
echo %1 >>D:\BatchRegistry\Erfolg.txt
Goto ENDE
:FEHLER
echo %1 >>D:\BatchRegistry\Fehler.txt
:ENDE
 
  • #7
wie wärs denn damit?

if errorlevel 1 echo %1 >>D:\BatchRegistry\Fehler.txt
if errorlevel 0 echo %1 >>D:\BatchRegistry\Erfolg.txt

also genau umgekehrt. Irgendwo hab ich doch mal gelesen... :)

Gruß
Frank
 
  • #8
  • #9
@ Frank
Ja, du hast natürlich recht - besser überlegen hätte sicherlich schon eher geholfen. Jetzt funktioniert es - danke das du mitgedacht hast :)

@Hugo
Auch dir noch einmal danke für die Mühe. Der Link auf die Seite ist übrigens super. Kann man sich eine Menge toller Scripts ansehen :)

Gemeinsam geht´s BESSER!!

Gruß Jörn
 
Thema:

Registry auslesen (Bachtprogrammierung/Scripting )

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben