Запись% ~ DP0 в реестр с использованием REG ADD - PullRequest
5 голосов
/ 12 января 2012

Я решил вопрос о вставке% DATE% в значение реестра REG_SZ ( см. Ссылку ), но теперь я столкнулся с немного другой проблемой, пытаясь вставить% ~ DP0 (длинный исходный путь) в значение реестра, используя REG ADD в сценарии .BAT.Это не сработает, и я уверен, что это потому, что я делаю что-то не так.

reg add "hklm\software\acme" /v "TestValue" /d "%~dp0" /t REG_SZ /f

Я также пытался сначала установить значение переменной, но это тоже не работает,Что происходит, когда он вставляет расширенный путь без предшествующих двойных кавычек, но с завершающими двойными кавычками, а затем бомбы с ошибкой о REG /?синтаксис и т. д.

SET VX=%~DP0
reg add "hklm\software\acme" /v "TestValue" /d "%VX%" /t REG_SZ /f

Кто-нибудь видит, что я делаю не так?

1 Ответ

5 голосов
/ 12 января 2012

Путь% ~ dp0 оканчивается символом-разделителем каталогов '\' (например, 'c: \ temp \'), который интерпретируется как экранирование для следующего символа двойной кавычки, поэтому анализатор не видит закрывающий символ двойные кавычки. Что вам нужно сделать, так это экранировать завершающий \ символ другим:

reg add "hklm\software\acme" /v "TestValue" /d "%~dp0\" /t REG_SZ /f
...