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-Key: 3250115265

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

Printed on: July 27, 2024 at 11:07 o'clock

Mitglied: 13676056485
Solution 13676056485 Jul 09, 2024 updated at 11:30:13 (UTC)
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
Member: MarciMarc85
MarciMarc85 Jul 09, 2024 at 11:27:32 (UTC)
Goto Top
Besten Dank !
Member: mbehrens
mbehrens Jul 09, 2024 at 11:50:15 (UTC)
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")