[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 ???
 
Последнее редактирование модератором:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,679
Реакции
6,150
Здравствуйте!
Скорее всего неактуально уже, тем не менее отвечу чтобы не оставлять тему "висячей".

Для разыменования используйте команду 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талась без внимания.
Впредь выбирайте внимательнее.
 
Сверху Снизу