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, 10147 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
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(11)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

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

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...