Войти

Показать полную графическую версию : [решено] Некорректно работает переменная %CD% в батнике.


angel_lyucifer
28-05-2016, 02:53
Привет всем... У меня некорректно работает переменная %CD% в батнике. Пишу такую команду
set ATC=HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Reg Add "%ATC%" /v "TalkingClock" /t REG_SZ /d \"%CD%\TalkingClock.exe\" /f
При обычном запуске батника работает переменная %CD% правильно, но команда не записывает в реестр нечего.
Когда его запускаешь с правами администратора, батник записывает в реестр а переменная уже работает не правильно.
Вот что она выводит после запуска с правами администратора.
"C:\Windows\system32\"Помогите пожалуйста мне...

Iska
28-05-2016, 03:36
При обычном запуске батника работает переменная %CD% правильно но команда не записывает в реестр нечего, когда его запускаешь с правами администратора батник записывает в реестр а переменная уже работает не правильно. »
Расставьте знаки препинания, пожалуйста.

Переменная окружения работает совершенно корректно — она хранит «текущий путь текущего диска», а вовсе не «путь к исполняемому пакетному файлу», как Вы, вероятно, ожидали. В большинстве случаев эти пути могут совпадать, но далеко не всегда, один из примеров — у Вас перед глазами. Для «путь к исполняемому пакетному файлу с завершающим обратным слэшем» используйте внутреннюю переменную «%0» — имя пакетного файла, а именно её расширение до «%~dp0»:

reg.exe add "%ATC%" /v "TalkingClock" /t REG_SZ /d \"%~dp0TalkingClock.exe\" /f

angel_lyucifer
28-05-2016, 06:41
reg.exe add "%ATC%" /v "TalkingClock" /t REG_SZ /d \"%~dp0TalkingClock.exe\" /f »

Ошибка синтаксиса.

Iska
28-05-2016, 08:15
Ошибка синтаксиса. »
Ну, это приведённый Вами синтаксис, я его не проверял. Пробельные символы в пути? Обрамите параметр кавычками:
reg.exe add "%ATC%" /v "TalkingClock" /t REG_SZ /d "\"%~dp0TalkingClock.exe\"" /f

angel_lyucifer
28-05-2016, 19:45
Большее спасибо Iska...




© OSzone.net 2001-2012