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, 5995 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 ..
Neuester Wissensbeitrag
Microsoft Office

MS Office Excel - Formel wird angezeigt, aber nicht berechneter Wert!

Tipp von holli.zimmi zum Thema Microsoft Office ...

Ähnliche Inhalte
Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

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

Frage von busteron zum Thema Windows Server ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (21)

Frage von Winuser zum Thema Hyper-V ...

Exchange Server
Bestehende eMails autoamatisch weiterleiten (21)

Frage von metal-shot zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (16)

Frage von ProfessorZ zum Thema Router & Routing ...