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

Nur den Teil eines Registry-Wertes per Batch auslesen?

Frage Entwicklung Batch & Shell

Mitglied: cool400

cool400 (Level 1) - Jetzt verbinden

23.06.2008, aktualisiert 29.06.2008, 6009 Aufrufe, 7 Kommentare

Hallo,

ich habe leider mal wieder ein für mich schier unlösbares Problem

Ich habe einen Registry-Eintrag des Wertes "ProxyServer" im Format

"http=mein-proxy.test.de:80;https=mein-proxy.test.de:80;ftp=ftp-proxy.test.de:80;gopher=mein-proxy.test.de:80"

unter HKEY_USERS\S-1-5-21-1289117853-911153512-630672053-161577\Software\Microsoft\Windows\CurrentVersion\Internet Settings

Nun brauche ich in einer Variable den Teil "mein-proxy.test.de:80" - wie kann ich das bewerkstelligen?

Ich bin für jede Hilfe wirklich sehr dankbar!!!

Viele Grüße

cool400
Mitglied: Biber
24.06.2008 um 06:58 Uhr
Moin cool400,

würde ich zwar mit einem Oneliner abfackeln, aber gedanklich in mehrere Schritte zerlegen.

In etwa so:
01.
... 
02.
Set regkey="HKCU\Software\Microsoft\Windows\Currentversion\Internet Settings" 
03.
:: Schritt 1 die ganze Zeile auslesen 
04.
For /f "tokens=3" %%i in ('reg query %regkey% /v "ProxyServer"^|find /i "Proxyserver"') do set  "alleProxies=%%i" 
05.
:: in %alleProxies steht jetzt der ganze Wert... mit Semikolon als Trennzeichen 
06.
:: Optimistische Annahme: es stehen IMMER 4 Werte drin in 4x2 Tokens 
07.
for /f "delims==; tokens=1-8" %%a in ("%alleproxies%") do ( 
08.
      If [%%a] NEQ [] Set "%%aProxy=%%b" 
09.
      If [%%c] NEQ [] Set "%%cProxy=%%d" 
10.
      If [%%e] NEQ [] Set "%%eProxy=%%f" 
11.
      If [%%g] NEQ [] Set "%%gProxy=%%h" 
12.
13.
:: Ergebnis - (bis zu) 4 Variablen 
14.
:: %HttpProxy% ==> mein-proxy.test.de:80 
15.
:: %HttpsProxy% ==> (der Wert hinter "Https=") 
16.
:: %FTPProxy% ==> (der Wert hinter "FTP=") 
17.
:: %gopherProxy% ==> (der Wert hinter "gopher=") 
18.
:: Und in %HttpProxy% steht Dein gesuchter Wert
[ungetestete, wenn auch tippfehlerbereinigte Skizze, siehe unten]

Grüße
Biber
Bitte warten ..
Mitglied: Biber
27.06.2008 um 08:06 Uhr
Moin cool400,
Ich bin für jede Hilfe wirklich sehr dankbar!!!
Ich hätte da einen Tipp, wie Du das in diesem Beitrag visualisieren könntest....

Grüße
Biber
Bitte warten ..
Mitglied: cool400
27.06.2008 um 10:32 Uhr
Entschuldige bitte...Du hast natürlich Recht!

Biber, vielen Dank für Deine super-schnelle und sehr ausführliche Hilfe.

Eine Frage nur: fehlt hier ein Anführungszeichen am Ende?

01.
For /f "tokens=3" %%i in ('reg query %regkey% /v "ProxyServer"^|find /i "Proxyserver"') do set  "alleProxies=%%i
Ich habe am Mittwoch mal probiert, das Skript umzusetzen, muss es aber mangels eigenem Proxy noch einmal von jemand anderem testen lassen!

Vielen Dank nochmal - ich melde mich, sobald ich alles in Ruhe ausprobiert habe.

Viele Grüße

cool400
Bitte warten ..
Mitglied: Biber
27.06.2008 um 10:53 Uhr
Moin cool400,

danke Dir für die ebenfalls superschnelle Rückmeldung.

ja, an der o.a. Stelle fehlt natürlich in der Tat ein Anführungszeichen.
Ich trage es oben im Schnipsel nach.

Und: Du kannst es ja durchaus selbst testen, wenn Du für 10 Minuten Testdauer diesen Registry-Eintrag anlegst (oder einen Vergleichbaren).

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: cool400
29.06.2008 um 13:06 Uhr
Hi Biber,

ich habe anscheinend noch ein weiteres Problem

Dieser Teil Deines Skripts scheint bei mir nicht zu funktionieren:

01.
for /f "delims==; tokens=1-8" %a in ("%alleproxies%") do (  
02.
      If [%%a] NEQ [] Set "%%aProxy=%%b"  
03.
      If [%%c] NEQ [] Set "%%cProxy=%%d"  
04.
      If [%%e] NEQ [] Set "%%eProxy=%%f"  
05.
      If [%%g] NEQ [] Set "%%gProxy=%%h"  
06.
) 
(BTW, Du hattest bei ...("%alleproxies%")... das "e" von "alle" vergessen, hab ich entsprechend bei mir verbessert)

Bis zu diesem Codeteil klappt das Auslesen, in der Variable alleproxies steht nun

http=mein-proxy.test.de:80;https=mein-proxy.test.de:80;ftp=ftp-proxy.test.de:80;gopher=mein-proxy.test.de:80

Ich habe hinter Deinem obigen Code ein "pause"-Tag eingefügt und wollte per ECHO-Befehl die einzelnen Variablen zum Überprüfen ausgeben lassen - jedoch wird das Skript ohne Ausgabe und ohne Pause beendet! Irgendwo scheint also ein Fehler zu sein...

Hast Du eine Idee, was falsch läuft?

Viele Grüße und schönen Sonntag

cool400

P.S. Fiiiiiiiiiiiiiiiiiiiiiiiiinale...ooooooooooooooohooooooooooo
Bitte warten ..
Mitglied: Biber
29.06.2008 um 15:54 Uhr
Moin cool400,

wenn ich den Schnipsel nun vor mir sehe, dann fällt mir auf, dass die FOR/F-Laufvariable fälschlicherweise von mir als %a statt %%a geschrieben wurde. Sorry.

Ich ändere es oben im Schnipsel. Ist dennoch immer noch ungetestet von mir.

Grüße
Biber

P.S. Mein Tipp für heute abend: klarer 1:0-Sieg nach Elfmeterschießen.
Bitte warten ..
Mitglied: cool400
29.06.2008 um 16:41 Uhr
Das war's!!!!!!!!!!!!!!!!!

Super, vielen Dank für Deine Hilfe!

Jetzt werde ich noch einen "echten" Test machen mit jemandem, der einen Proxy benutzt - und natürlich bei evtl. Veröffentlichung meines Skripts Credits für Dich mit angeben

Viel Spaß heute Abend und Danke

cool400
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch Registry auslesen - anpassen (5)

Frage von pi0h.kk zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (3)

Frage von Zendara zum Thema Batch & Shell ...

Windows Server
gelöst SCCM2012 Abfrage eines Registry Wertes (5)

Frage von busteron zum Thema Windows Server ...

Batch & Shell
Wert in Registry suchen und in Variable speichern (2)

Frage von J.Troll zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (21)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Drucker und Scanner
Erfahrungen mit Enterprise-Tintenstrahldruckern A4 und A3 (11)

Frage von User1000 zum Thema Drucker und Scanner ...