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, 6004 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 Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Registry per Batch abfragen und INI Einträge hinzufügen bzw. ändern (18)

Frage von kampen zum Thema Batch & Shell ...

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

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Windows 10
Windows 10 Home "Netzlaufwerk nicht bereit" (17)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
Exchange Postfach leeren - nicht löschen (10)

Frage von AndreasOC zum Thema Exchange Server ...