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

Batch - reg query Zeichnfolge und Wert auslesen, bei CALL Parameterübergabe (Leerzeichen Problem)

Frage Entwicklung Batch & Shell

Mitglied: xpander

xpander (Level 1) - Jetzt verbinden

12.06.2009, aktualisiert 20:14 Uhr, 10153 Aufrufe, 4 Kommentare

Hallo Leute,

ich suche eine Lösung für mein folgendes Problem, kann mir dabei jemand bitte helfen?

Ich möchte mit reg query Zeichnfolgen und Werte auslesen und die Zeichnfolgen (%1) als Variable mit dem Wert (%3 usw) setzen.

Bei Beispiel 1- Alles bestens wenn die Werte keine Leerzeichen haben (bei Pfaden zB.)
Bei Beispiel 2 - habe ich 2 Probleme:
1. Bei jedem Parameter der keinen Inhalt hat bekommt die Variable %1 (:SET2) ein Leerzeichen dazu und ich kann mit den Variablen nicht weiterarbeiten
2. Was mache ich wenn der Registry Schlüssel mehr als 9 Zeichenfolgen hat?


Hier mein erster Anfänger Versuch:

01.
:: BEISPIEL 1 
02.
for /f "tokens=1,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\IRGENDWAS" ^|findstr "REG_SZ"') do call :SET1 %%a %%b 
03.
:: BEISPIEL 2 
04.
for /f "tokens=1,3-9 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\IRGENDWAS" ^|findstr "REG_SZ"') do call :SET2 %%a %%b %%c %%d %%e %%f %%g %%h 
05.
 
06.
:SET1 
07.
set "%1=%2" 
08.
goto :EOF 
09.
:SET2 
10.
set "%1=%2 %3 %4 %5 %6 %7 %8 %9" 
11.
goto :EOF
Wie muss die 2. Schleife aussehen damit das ohne umwege klappt?

gruß xpander
Mitglied: bastla
12.06.2009 um 23:01 Uhr
Hallo xpander!

Eigentlich stellt sich die Frage, was Du denn dann weiter mit den Variablen(-werten) vor hast (das Unterprogramm hat nur dann Sinn, wenn dort mehr als nur die Zuweisung erfolgen soll) ...

... ansonsten etwa so:
01.
for /f "tokens=1,2* delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\IRGENDWAS" ^|findstr "REG_SZ"') do call :SET2 %%a "%%c" 
02.
goto :eof 
03.
 
04.
:SET2 
05.
set "%1=%~2" 
06.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: xpander
12.06.2009 um 23:51 Uhr
Hi bastla

Aha, also den 2. Parameter mit %~2 expandieren und Anführungszeichen entfernen, da war ich bei meinen Versuchen ja schon knapp dran
Nur auf tokens=1,2* mit call :SET2 %%a "%%c", also das dann alles in "%%c" drin ist - darauf bin ich nicht gekommen,
hab mich da irgendwie auf token 1,3 versteift weil ich ja 2 nicht brauche. Batch ist manchmal schon etwas seltsam für mich

Wieder was gelernt.
Toll, ich denke mein Problem ist gelöst - vielen dank bastla!

Und ja, eigentlich findet im Unterprogramm nur die Zuweisung statt - sollte ich es anders machen?
Ich glaube ich hatte das mal so gemacht, weil ich irgendwann mal Probleme mit den Variablen hatte, also leere Variablen in einer if-Abfrage oder so in der Art.
Weiß leider nicht mehr genau - ich weiß nur noch, dass mir da noch einiges an Wissen fehlt/e

gruß xpander
Bitte warten ..
Mitglied: bastla
13.06.2009 um 10:46 Uhr
Hallo xpander!

Ohne Unterprogramm würde das einfach so aussehen:
for /f "tokens=1,2* delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\IRGENDWAS" ^|findstr "REG_SZ"') do set "%%a=%%c"
Grüße
bastla
Bitte warten ..
Mitglied: xpander
13.06.2009 um 12:24 Uhr
Hi bastla

Kann ich so nicht machen, da Pfade aus der Registry dann entweder so "%Variablen%\Irgendwas" oder so "REG_SZ\Irgendwas" aussehen.
Ich verwende in den Registry Werten auch Variablen in den Pfaden, dachte da gibts noch einen anderen Weg...

trozdem danke bastla!
gruß xpander
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

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

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

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

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...