[CMD] Как получить путь переменной %SystemRoot% скрипта

bossmanlast

Новый пользователь
Сообщения
1
Реакции
0
Здравствуйте, прошу помощи у знающих
Есть скрипт получения пути служб
Пример

CMD/BATCH:
call :fullclear "DsmSvc"                 
          
:END
pause
exit

:fullclear

Echo --------------------GO--------------------------------
:check.ImagePath
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%~1 /v ImagePath > nul 2>&1
if %errorlevel% equ 0 (
goto :show.ImagePath
) else (
echo Відсутній ImagePath
goto :next
)
:show.ImagePath
for /f "tokens=1 delims=,-/" %%i in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%~1" /v "ImagePath"') do (

set asdi2=%%~i
)

set show.ImagePath.cd.and=%asdi2:    ImagePath    REG_EXPAND_SZ    =%
set show.ImagePath.cd=%show.ImagePath.cd.and:"=%

echo %show.ImagePath.cd%

::----------------------------
dir %show.ImagePath.cd%


exit /b

Pause

Результатом echo %show.ImagePath.cd% является
%SystemRoot%\system32\svchost.exe

Но используя команду dir %show.ImagePath.cd%
система неможет найти файл.

Не происходит расшифровка пути переменной
%SystemRoot%

Собственно вопрос в названии!!!

Как в итоне получить конечний путь переменной %SystemRoot% те C:\Windows ???
 
Последнее редактирование модератором:
Здравствуйте!
Скорее всего неактуально уже, тем не менее отвечу чтобы не оставлять тему "висячей".

Для разыменования используйте команду call.
Для прыжка на уровень выше for + %%~DP либо for + dir %p%\..
Пример:
Код:
@echo off
set p=%%SystemRoot%%\system32\svchost.exe

for /f "delims=" %%a in ('call echo %p%') do echo %%~dpa
* PS. Тема была размещена в неверном подразделе, скорее всего поэтому оcталась без внимания.
Впредь выбирайте внимательнее.
 
Назад
Сверху Снизу