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

Wie bis zu einem bestimmten Text eines Reg-Eintrags in einer Variable abspeichern?

Frage Entwicklung Batch & Shell

Mitglied: spookypoof

spookypoof (Level 1) - Jetzt verbinden

09.06.2013, aktualisiert 22:24 Uhr, 1973 Aufrufe, 14 Kommentare, 6 Danke

Ahoi,

Ich brauche Hilfe. Und zwar muss ich den VLC-Pfad im Reg finden Und in meiner Batch nutzen.

01.
FOR /F "tokens=2,*" %%A in ('reg query "HKEY_CLASSES_ROOT\Applications\vlc.exe\shell\Open\command" ^| find "REG_SZ"') do SET vlc=%%B
Hinbekommen habe ich es schon, aber das Problem ist, dass in der Reg als Wert noch das steht ' --started-from-file "%1" ' Und das stört den start vom VLC in der Batch. Das heißt ich brauche nur den Installations-Pfad des VLCs.

Die Frage: Wie kann ich bis zu einer bestimmten Text eines Reg-Eintrags in einer Variable abspeichern?


~spookypoof
Mitglied: bastla
09.06.2013, aktualisiert um 22:53 Uhr
Hallo spookypoof!

Wenn du mit "Zeile" tatsächlich "Zeile" meinst, dann etwa so:
FOR /F "tokens=2*" %%A in ('reg query "HKEY_CLASSES_ROOT\Applications\vlc.exe\shell\Open\command" ^| find "REG_SZ"') do if not defined vlc SET "vlc=%%B"
Grüße
bastla
Bitte warten ..
Mitglied: spookypoof
09.06.2013, aktualisiert um 22:33 Uhr
Ops mein Fehler :S Bis zu einem bestimmten Text.

In meinem Fall liegt der VLC hier: C:\Program Files (x86)\VideoLAN\VLC\vlc.exe
Aber in dem Reg Eintrag steht: "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --started-from-file "%1"
Das ' --started-from-file "%1" ' soll von der Batch ignoriert werden. Und der VLC-Installations Pfad soll in einer Variable abgespeichert werden.

Aber danke schon mal.
Bitte warten ..
Mitglied: bastla
09.06.2013, aktualisiert um 22:53 Uhr
Hallo spookypoof!

Unter der Annahme, dass der Pfad unter Anführungszeichen steht:
FOR /F "tokens=2*" %%A in ('reg query "HKEY_CLASSES_ROOT\Applications\vlc.exe\shell\Open\command" ^| find "REG_SZ"') do for %%I in (%%B) do if not defined vlc SET "vlc=%%~I"
Grüße
bastla
Bitte warten ..
Mitglied: spookypoof
09.06.2013 um 22:40 Uhr
hmm.. meine Batch stürzt ab. :/ Und ich denke dass, "%1" ist das Problem.
Bitte warten ..
Mitglied: bastla
09.06.2013, aktualisiert um 22:53 Uhr
Hallo spookypoof!

Na gut, dann vielleicht:
01.
FOR /F "tokens=2*" %%A in ('reg query "HKEY_CLASSES_ROOT\Applications\vlc.exe\shell\Open\command" ^| find "REG_SZ"') do SET "vlc=%%B" 
02.
set "vlc=%vlc: --started-from-file "%1"=%"
Grüße
bastla
Bitte warten ..
Mitglied: spookypoof
09.06.2013 um 22:49 Uhr
Perfekt!! Hat geklappt =)

Vielen Dank bastla!
Bitte warten ..
Mitglied: bastla
09.06.2013 um 22:53 Uhr
Hallo spookypoof!

Freut mich (und ist auch die sauberere Variante) ...

Grüße
bastla
Bitte warten ..
Mitglied: Friemler
09.06.2013 um 22:56 Uhr
Hallo spookypoof,

für die Abfrage des Pfades von VLC gibt es einen besser geeigneten Reg-Schlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\VideoLAN\VLC
Dort den Standartwert auslesen:
01.
@echo off & setlocal 
02.
 
03.
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VideoLAN\VLC" /ve') do ( 
04.
  set "vlc=%%b" 
05.
)
Gruß
Friemler
Bitte warten ..
Mitglied: spookypoof
09.06.2013, aktualisiert um 23:16 Uhr
Jo, ich wollte es am Anfang auch mit dem Reg-Schlüssel machen, aber den Schlüssel finde ich persönlich in meiner Reg nicht, obwohl VLC installiert ist. :/

Hab dafür ein Bild angefertigt:
http://s7.directupload.net/images/130609/cjdgyrqd.png
Bitte warten ..
Mitglied: Friemler
09.06.2013 um 23:22 Uhr
Hallo spookypoof,

wie ich an den Pfaden in diesem Kommentar sehe, hast Du ein 64Bit-System, VLC-Player ist aber eine 32Bit Anwendung. Der Registry-Pfad lautet deshalb
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VideoLAN\VLC
wenn Du ihn aus einer 64Bit-Anwendung auslesen möchtest.

Gruß
Friemler
Bitte warten ..
Mitglied: spookypoof
09.06.2013, aktualisiert 14.07.2013
Sie haben recht! Jetzt wäre noch gut wenn meine Batch erkennt ob ich ein 32Bit System nutze dann den "HKEY_LOCAL_MACHINE\SOFTWARE\VideoLAN\VLC" Pfad benutzt oder wenn es um ein 64Bit System handelt den "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VideoLAN\VLC" Pfad.

Ich denke so oder?

01.
FOR /F "tokens=1 delims=[" %%A IN ('VER') DO ECHO %%A^(32-bits^) >nul 
02.
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VideoLAN\VLC" /v InstallDir 2^>nul ^| find "REG_SZ" ') do ( 
03.
  set vlc="%%b\vlc.exe" >nul 
04.
 
05.
06.
 
07.
) else ( 
08.
 
09.
FOR /F "tokens=1 delims=[" %%A IN ('VER') DO ECHO %%A^(64-bits^) >nul 
10.
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VideoLAN\VLC" /v InstallDir 2^>nul ^| find "REG_SZ" ') do ( 
11.
  set vlc="%%b\vlc.exe" >nul 
12.
 
13.
14.
 
15.
)
Bitte warten ..
Mitglied: Friemler
09.06.2013 um 23:46 Uhr
Ich würde es auch mit
if defined ProgramFiles(x86)
lösen, hat sich als zuverlässiger als die Abfrage der Systemvariablen PROCESSOR_ARCHITECTURE erwiesen.

Gruß
Friemler
Bitte warten ..
Mitglied: spookypoof
09.06.2013, aktualisiert um 23:59 Uhr
Jo, würde auch gehen

Danke dir auch Friemler!
Bitte warten ..
Mitglied: Endoro
10.06.2013, aktualisiert um 00:14 Uhr
Hallo spookypoof,

hier noch ein Codestückchen zu Windows Version entdecken:

01.
@echo off 
02.
setlocal EnableDelayedExpansion 
03.
 
04.
::Identify OS 
05.
for /F "delims=" %%a in ('ver') do set ver=%%a 
06.
set Version= 
07.
for %%a in (95=95 98=98 ME=ME NT=NT 2000=2000 5.1.=XP 5.2.=2003 6.0.=Vista 6.1.=7 6.2.=8) do ( 
08.
   if "!Version!" equ "this" ( 
09.
      set Version=Windows %%a 
10.
   ) else if "!ver: %%a=!" neq "%ver%" ( 
11.
      set Version=this 
12.
13.
14.
 
15.
::Identify bit 
16.
if exist "%SYSTEMDRIVE%\Program Files (x86)" ( 
17.
   set Type=64 bit 
18.
) else ( 
19.
   set Type=32 bit 
20.
21.
 
22.
::Display result 
23.
echo %Version% %Type%
Gruss!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel: Text in Zellbereich prüfen mit Vergleichstext ggf. mit Exact-Funktion (5)

Frage von Michi1 zum Thema Microsoft Office ...

JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...