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, 10118 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
(BATCH) Präfix aus einem USERNAME auslesen (1)

Frage von TomMaverick zum Thema Batch & Shell ...

Windows 10
REG Query HKLM (3)

Frage von AtoAto zum Thema Windows 10 ...

Batch & Shell
gelöst Batch: Dateiname abhängig vom Änderungsdatum auslesen (6)

Frage von freaktastisch zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH Element aus XML-File auslesen (9)

Frage von pappkamerad zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

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

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...