Я пытаюсь вернуть место установки программы, используя REG QUERY внутри цикла FOR. Моя команда выглядит следующим образом:
FOR /F "TOKENS=2 DELIMS=REG_SZ" %%a IN ('REG QUERY "HKLM\SOFTWARE\Wow6432Node\TeamSpeak 3 Client" /V "" 2^>NUL') DO SET TSLOC=%%a
Теперь REG QUERY сам по себе возвращает:
(Default) REG_SZ C:\Program Files\TeamSpeak 3 Client
Но использование разделителя REG_SZ возвращает:
C:\Users\Jake\Desktop>FOR /F "TOKENS=2 DELIMS=REG_SZ" %a IN ('REG QUERY "HKLM\SOFTWARE\Wow6432Node\TeamSpeak 3 Client" /V "" 2>NUL') DO SET TSLOC=%a
C:\Users\Jake\Desktop>SET TSLOC=Y
C:\Users\Jake\Desktop>SET TSLOC= C:\Program Files (x86)\Team
Так что, очевидно, я добираюсь до \Team только в конце. Я понятия не имею, откуда он берет «Y» или почему разделитель заставляет его разделяться на \Team. Если я изменю свой токен # на 3, он вернет:
peak 3 Client
Так что каким-то образом он должен интерпретировать «s» как мой разделитель, верно?
Мой вопрос в том, почему (или, если нет, что он делает?) и как я могу заставить его дать мне все это. Что я делаю не так?