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

Registryeintrag mittels Batch auslesen und in ein File schreiben

Frage Entwicklung Batch & Shell

Mitglied: ITSchlumpf

ITSchlumpf (Level 1) - Jetzt verbinden

05.10.2011 um 12:02 Uhr, 18383 Aufrufe, 14 Kommentare

Hallo zusammen,

ich habe das Forum bereits durchforstet und einige Beiträge über dieses Thema gefunden, jedoch werde ich leider nicht daraus schlau.
Mein Problem im moment ist, dass ich Computernamen aus einem Textfile lesen soll und dann einen bestimmten Registriewert dieser Computer in einem Textfile ablegen soll.

Das mit dem Textfile hab ich hinbekommen, aber wie das mit der Registry gehen soll weiß ich noch nicht so ganz. Ich habe hier einige Beiträge mit Schleifen gelesen, aber da kam ich noch nicht wirklich klar damit.

Ziel:
Batch starten -> Rechner aus Textdatei auslesen -> Reg key dieses Rechners auslesen -> in Textfile schreiben und nächster Rechner.

Vielen dank schonmal für die Hinweise und Tipps

Gruß
Schlumpf
Mitglied: BigWim
05.10.2011 um 13:09 Uhr
Moin ITSchlumpf,

das mit den Schleifen und Auslesen aus einer Textdatein haben wir schon geübt

Das nächste Stichwort wäre dann reg query /?

Gruß
Markus

01.
reg query \\%rechner%\HKLM\........ >%LogFile%
Bitte warten ..
Mitglied: ITSchlumpf
05.10.2011 um 13:17 Uhr
Hi,
danke für die Antwort.

Aber wie kann ich das machen, dass er mir nur einen Schlüssel ausliest?

01.
reg query "\\nb235\HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common" /f /v key >> \\nb235\D$\log.txt
da schreibt er nur Schrott in das logfile. Hast mir da vll nen ansatz?

Gruß
Schlumpf

P.s. ja das mit dem Textdateien auslesen haben wir schon geübt :D
Bitte warten ..
Mitglied: 60730
05.10.2011 um 13:21 Uhr
moinsen,

Ich habe...... Die nummer mit dem Ross und dem Reiter so langsam satt

Nur mal so ein klitschkokleiner Tipp.

Reg query kann nur HKLM oder HKU auslesen, steckt der gesuchte Wert in einem anderen Ast, braucht es eine andere Lösung.

Gruß


edit
reg query "\\nb235\HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common" /f /v key

/f wie force oder /f wie fucking manual oder /f wie falsch?
/edit
Bitte warten ..
Mitglied: ITSchlumpf
05.10.2011 um 13:25 Uhr
Hey Timo,

naja aber der Wert steckt doch in HKLM also stimmt doch der Ansatz oder sehe ich das falsch?

Gruß
Schlumpf
Bitte warten ..
Mitglied: BigWim
05.10.2011 um 15:06 Uhr
Moin ITSchlumpf,

naja aber der Wert steckt doch in HKLM also stimmt doch der Ansatz
Der Ansatz ja.

oder sehe ich das falsch?
Erst heute wurde mir wieder vor Augen geführt, wie ernst unser einer die Hilfetexte nehmen sollte!

Wie kommst Du zu diesen Parametern?

Wenn ich es so probiere, funktioniert es:
01.
reg query hklm\SOFTWARE\bplan-solutions\xxx\xxxx /s
01.
! REG.EXE VERSION 3.0 
02.
 
03.
HKEY_LOCAL_MACHINE\SOFTWARE\bplan-solutions\xxx\xxx 
04.
    Benutzer    REG_SZ  Benutzername: 
05.
    Kennwort    REG_SZ  Kennwort: 
06.
    KS-Applikation      REG_SZ  xxx App 
07.
 
08.
HKEY_LOCAL_MACHINE\SOFTWARE\bplan-solutions\xxx\xxx\LastPos 
09.
 
10.
HKEY_LOCAL_MACHINE\SOFTWARE\bplan-solutions\xxx\xxx\Trace 
11.
    TraceDir    REG_SZ  C:\Programme\bplan-solutions\TRACE 
12.
    TraceLevel  REG_SZ  0
Bitte warten ..
Mitglied: ITSchlumpf
05.10.2011 um 15:28 Uhr
Da hast du recht BigWim. Mit dem Befehl

01.
  
02.
reg query "\\nb235\HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common" /s  >> \\nb235\D$\sql.txt
werden die Daten auch schön in das Textfile geschrieben.
Sobald ich aber den Befehl aus dem Batchfile starte, funktioniert das nicht mehr. Dann bleibt der Befehl hängen und macht garnichts mehr. Er lässt sich dann auch nicht mehr beenden.

Zudem noch etwas anderes. Ich brauche nicht den ganzen Schlüsselwert sondern nur den Wert des Schlüssel da es sich um einen Lizenzschlüssel handelt. Hier müsste ich ja eig eine For Schleife bauen, welche mir mittels token den 3. Abschnitt rausnimmt und in das Textfile schreibt.
Wie diese Schleife genau aussehen muss weiß ich jedoch noch nicht genau. Aber das bekomme ich vll mit hilfe von euch oder mittels tutorial ausm Forum bestimmt auch noch hin

Also falls dir grad was einfällt, wie ich das erste problem mit dem Textfile lösen kann, wäre mir schonmal sehr geholfen.

Gruß
Schlumpf
Bitte warten ..
Mitglied: BigWim
05.10.2011 um 15:53 Uhr
Sobald ich aber den Befehl aus dem Batchfile starte, funktioniert das nicht mehr. Dann bleibt der Befehl hängen und macht
garnichts mehr. Er lässt sich dann auch nicht mehr beenden.
Dann poste doch mal Dein aktuelles Script.

Zudem noch etwas anderes. Ich brauche nicht den ganzen Schlüsselwert sondern nur den Wert des Schlüssel da es sich um
einen Lizenzschlüssel handelt.
Dann warst Du mit dem /v schon auf dem richtigen Weg. Wir kommst Du auf das /f?
Lass es mal weg!

Also falls dir grad was einfällt, wie ich das erste problem mit dem Textfile lösen kann, wäre mir schonmal sehr
geholfen.
Es bleibt dabei. Bei Fehlersuche hat das echo off nix zu suchen.
a) findest Du die Stelle, die hängt - die meist eine andere ist, als vermutet (zumindest bei mir so)
b) siehst Du die Aufrufparameter. Vielleicht ist da ja noch was im argen ....

Gruß
Markus
Bitte warten ..
Mitglied: ITSchlumpf
05.10.2011 um 16:08 Uhr
Also da ich noch am rumprobieren bin, hab ich noch nicht viel code geschrieben war heute auch noch etwas beschäftigt.
01.
Title RegEdit 
02.
setLocal 
03.
reg query "\\nb235\HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common" /v key  >> \\nb235\D$\sql.txt 
04.
pause
Mehr ist es momentan eig auch noch nicht. Mein erstes Ziel wäre eig erstmal den inhalt vom key auszulesen und dann später mittels schleife nur den lizenzschlüssel auszulesen.
Wenn ich den Code so laufen lass, bekomme ich den Fehler "Maximale Recursionstiefe für SetLocal erreicht". Ohne SetLocal steht das batch fenster einfach fest und macht nichts mehr.

Gruß

[Edit] Im Textfile steht wie in einer Schleife nur der Befehlscode immer und immer wieder. [/Edit]
Bitte warten ..
Mitglied: 60730
05.10.2011 um 16:42 Uhr
Zitat von ITSchlumpf:
[Edit] Im Textfile steht wie in einer Schleife nur der Befehlscode immer und immer wieder. [/Edit]

Lass mir radden - die Bätch nennt sich reg.bat

  • Setlocalrunde ist auch etwas flüssiger als flüssig.

  • Warum piepst du das auch noch nach d$ auf die gleiche Kiste?

So sieht der Kram bei mir aus, da läuft
01.
reg query "\\antonnymisiert\HKLM\SOFTWARE\itschlumpf\123\abc dfg\common" /v key>>c:\script\test\schlumpf.ini
 
! REG.EXE VERSION 3.0 
 
HKEY_LOCAL_MACHINE\SOFTWARE\itschlumpf\123\abc dfg\common 
    key	REG_SZ	ichweissnichtwasderhat
Bitte warten ..
Mitglied: ITSchlumpf
05.10.2011 um 16:50 Uhr
Omg Kopf -> Tisch -.-
Jo Reg.cmd kann ja net funktionieren bin zu blöd -.-
Danke Timo

Naja weil ich es einfach testen wollte, da brauch ich das Textfile ja nicht auf nen anderen Rechner schieben.
So jetzt noch die Schleife dann passt es.

Danke

Gruß
Schlumpf


[Edit] Zum Thema schleife.
01.
for /f "tokens=3" %%i in ('reg query "HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common"^|findstr "key"') do echo %%i>D:\schlumpf.txt
Die Schleife hab ich hier im Forum gefunden, zu einem ähnlichen Problem. Ich weiß zwar net viel über Schleifen in Batch files aber ich glaube das sollte fast richtig sein ^^
Falls nicht, lasse mich gerne von etwas besserem beleren.

[/Edit]
Bitte warten ..
Mitglied: 60730
05.10.2011 um 17:12 Uhr
Zitat von ITSchlumpf:
[Edit] Zum Thema schleife.
01.
for /f "tokens=3" %%i in ('reg query "HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common"^|findstr "key"') do echo %%i>D:\schlumpf.txt
Die Schleife hab ich hier im Forum gefunden, zu einem ähnlichen Problem. Ich weiß zwar net viel über Schleifen in
Batch files aber ich glaube das sollte fast richtig sein ^^
Falls nicht, lasse mich gerne von etwas besserem beleren.

[/Edit]

Diese Schleife sorgt nur dafür, dass nur der gewünschte Inhalt/Wert ausgegeben wird...

01.
for %%a in (rechner.txt) do call :bastla %%a 
02.
goto :eof 
03.
 
04.
::bastla 
05.
Ping -n 1 %1 |find "TTL" && for /f "tokens=3" %%i in ('reg query "\\%1\HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common"^|findstr "key"') do ( 
06.
if not "%%i"=="" echo %1,%%i>D:\schlumpf.csv 
07.
 
08.
:eof
Bitte warten ..
Mitglied: ITSchlumpf
06.10.2011 um 08:45 Uhr
Danke für die Schleife. Sieht auch recht gut aus, aber leider schreibt er mir noch keinen Wert in die %%i Variable.
Mit dem "find" nach Ping kann ich da alles eingeben was in der Ping Ausgabe vorkommt? Weil wenn ich den Ping befehl vorne dran lass, überspringt er mir die for-Schleife.
Naja werd mal noch ein wenig dran rumbasteln. Muss ja irgendwie funktionieren.
Danke Timo und Markus.

Gruß
Schlumpf


01.
Title RegEdit 
02.
SET pc=rechner.txt 
03.
 
04.
for /f %%a in (%pc%) do call :bastla %%a 
05.
goto :eof  
06.
 
07.
:bastla  
08.
Set eeepc=%1 
09.
REM ping -n 2 %eeepc% |find "Empfangen = 2" &&  
10.
pause 
11.
for /f "tokens=3" %%i in ('reg query "\\%eeepc%\HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common"^|findstr "key"') do ( if not "%%i"=="" echo %eeepc%, %%i > D:\schlumpf.csv ) 
12.
echo %eeepc%, %%i  
13.
pause 
14.
:eof
[Edit]
Problem ist gelöst. Die Klammer am Schluss bei der if - Abfrage muss weg, dann klappt es.

01.
Title RegEdit 
02.
SetLocal 
03.
SET pc=rechner.txt 
04.
 
05.
for /f %%a in (%pc%) do call :bastla %%a 
06.
goto :eof  
07.
 
08.
:bastla  
09.
Set eeepc=%1 
10.
ping -n 2 %eeepc% |find "Empfangen = 2" && for /f "tokens=3" %%i in ('reg query "\\%eeepc%\HKLM\Software\Beckhoff\TwinCAT OPC Server4\Common"^|findstr "Key"') do  if not "%%i"=="" echo %eeepc%, %%i > D:\schlumpf.csv  
11.
:eof
Bitte warten ..
Mitglied: BigWim
06.10.2011 um 15:18 Uhr
Moin ITSchlumpf,

Jo Reg.cmd kann ja net funktionieren bin zu blöd -.-
Deswegen fangen meine Scripte grundsätzlich mit einem m an ...

Gruß
Markus
Bitte warten ..
Mitglied: ITSchlumpf
06.10.2011 um 15:39 Uhr
Sollte ich in Zukunft wohl auch machen

Gruß
Schlumpf
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
gelöst Kl. Frage: Log-File schreiben per Batch (3)

Frage von Yauhun zum Thema Batch & Shell ...

Windows Server
gelöst AD-User einer AD-Gruppe auslesen und in ein File schreiben (15)

Frage von Estefania zum Thema Windows Server ...

Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Batch & Shell
gelöst ( Batch ) Open File or Folder Dialog (5)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...