Мне нужно получить значение реестра для HKLM \ SOFTWARE \ Adobe \ Photoshop \ 12.0 data dtring ApplicationPath. Значение является оператором пути, например C: \ Program Files \ Adobe \ Adobe Photoshop CS5.1 (64-разрядная версия). Я пытаюсь запустить цикл FOR / F, чтобы получить это значение, и установить echo %% X для отображения значения, а затем установить переменную с именем APPFOLDER в возвращаемое значение %% X. Ниже приведен код, который я использую. Возвращаемое значение усекается после C: \ Program. Он не отображает полный путь, потому что между C: \ Program и Files есть пробел. Как я могу обойти эту проблему и захватить весь путь для значения ApplicationPath?
Переменная LINES - это номер строки, которую команда REG Query отображает в XP или Windows 7. В Windows 7 это 2 строки
rem set LINES=2
rem ver | FIND "5.1" && SET LINES=4
FOR /F "usebackq skip=%LINES% tokens=3*" %%X IN ('REG QUERY HKLM\SOFTWARE\Adobe\Photoshop\12.0 /v ApplicationPath') DO (
echo %%X
SET APPFOLDER=%%X
)
rem Run the installer to remove Photoshop 12.1
if %APPFOLDER%="C:\Program Files\Adobe\Adobe Photoshop CS5.1 (64 Bit)\"
%SYSDIR%\msiexec.exe /uninstall {67A1C99B-8E97-41AF-97DF-DDDE24A84C01} /quiet
) Else (
%SYSDIR%\msiexec.exe /uninstall {5A430790-9605-48AF-B649-6A63B68863AE} /quiet
)