В основном я хочу знать, возможно ли мне получить путь из реестра и использовать его в пакетном файле.
В основном у меня есть код, который я собрал с этого сайта.
@echo off
reg query "HKLM\SOFTWARE\Wow6432Node\Rockstar Games\Grand Theft Auto V" /v "InstallFolder"
Эта строка возвращает
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Rockstar Games\Grand Theft Auto V
InstallFolder REG_SZ D:\Rockstar Games\Grand Theft Auto V
Все, что я хочу сделать здесь, это добавить путь к GTA в пакетный файл, чтобы затем я мог запустить исполняемый файл (PlayGTAV.exe) через пакетный файл. Причина, по которой я не использую путь, который я уже знаю, заключается в том, что я хочу, чтобы этот пакетный файл работал и на некоторых компьютерах друзей.
@ECHO OFF
SETLOCAL
FOR /f "delims = " %%a IN ('reg query "HKLM\SOFTWARE\Embarcadero\Interbase\Servers" ^|find " REG_SZ "') DO (
SET "target=%%a"
)
SET "target=%target:*REG_SZ =%"
ECHO "%target%"
GOTO :EOF
Это должно продемонстрировать, как — я, очевидно, использовал другой ключ.
^|find...
находит соответствующую строку, содержащую REG_SZ
(курсор используется, чтобы сообщить cmd
, что конвейер относится к команде reg query
, а не является частью for
), а for /f "delims = "
выбирает всю строку для применения к %%a
.
Оттуда это просто вопрос применения подстроки к обычной переменной среды target
(поскольку подстрока метапеременной %%a
не разрешена) — замените любые символы до и включая первое вхождение REG_SZ+4spaces
на ничего (строка между =
и терминалом %