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

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, 6017 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 ...

Batch & Shell
gelöst In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen (5)

Frage von dh0815 zum Thema Batch & Shell ...

Entwicklung
Registry - Werte und Schlüssel per Skript löschen (3)

Frage von ArnoNymous zum Thema Entwicklung ...

Neue Wissensbeiträge
Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin zum Thema Vmware ...

Datenschutz

Session-Replay: Viele beliebte Webseiten zeichnen jegliche Texteingabe auf

Information von Penny.Cilin zum Thema Datenschutz ...

Sicherheit

Zufällige Speicherzuweisung: Windows-Bug hebelt Sicherheitsmechanismus ASLR aus

Information von Penny.Cilin zum Thema Sicherheit ...

Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Freigabe aus anderem Netz nicht erreichbar (44)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Windows Netzwerk
Netzwerk Neustrukturierung (16)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen (14)

Frage von Akcent zum Thema Windows 10 ...