marcimarc85
Goto Top

Pfad zur exe eines Windows Dienstes in Batch Variable

Hallo,

Ich habe eigentlich nur ein simples Anliegen. Ich benötige den Pfad eines bestimmten Windows Dienstes in einer Batch variablen. Der Dienstname ist Versionsabhängig (z.B. MySQL57 und MySQL80)

Ich einem anderen Script habe ich das Ganze per Powershell bereits abgefragt:

$mysql_bin_path = (Get-WmiObject win32_service | ?{$_.Name -like '*sql*'}).PathName -replace '(?<=\\bin)\\.*',''  

Da bekomme ich dann den gesamten Pfad, ohne die exe-Datei des Servies geliefert.

Genau dieses Ergebnis brauche ich nun aber auch in einer Batch-Variablen. Ich finde aber einfach keinen Befehl.

Content-ID: 3250115265

Url: https://administrator.de/contentid/3250115265

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

13676056485
Lösung 13676056485 09.07.2024 aktualisiert um 13:30:13 Uhr
Goto Top
@echo off
for /f "delims=" %%a in ('powershell -EP Bypass -C "split-path (Get-CimInstance win32_service -Filter 'Name like \"%sql%\"' -Property PathName).PathName -Parent"') do set "sqlpath=%%a"  
echo %sqlpath%
oder als Pure Batch über wmic etwa wie folgt
@echo off
for /f "tokens=2 delims==" %%a in ('wmic path win32_service where ^(name like "%%sql%%"^) get PathName /value') do for /f "delims=" %%b in ("%%a") do set "sqlpath=%%~dpb"  
echo %sqlpath%
Gruß wrk
MarciMarc85
MarciMarc85 09.07.2024 um 13:27:32 Uhr
Goto Top
Besten Dank !
mbehrens
mbehrens 09.07.2024 um 13:50:15 Uhr
Goto Top
Zitat von @MarciMarc85:

Genau dieses Ergebnis brauche ich nun aber auch in einer Batch-Variablen. Ich finde aber einfach keinen Befehl.

So etwas?

for /f "delims=" %%A in ('pwsh -c "(Get-Service edgeupdate).BinaryPathName"') do (set "variable=%%A")