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, 1989 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 ..
Ähnliche Inhalte
Webentwicklung
gelöst Foto Upload und Default Text einfügen (12)

Frage von smackee zum Thema Webentwicklung ...

Windows Server
gelöst Server 2008 R2: Aufgabe ohne bestimmten Benutzer starten - wie? (3)

Frage von honeybee zum Thema Windows Server ...

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

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (44)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

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

Windows Server
Server 2012 R2 - Zugriff Verweigert bei jeglicher Tätigkeit (13)

Frage von DarkLevi zum Thema Windows Server ...