Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Некорректно работает переменная %CD% в батнике. (http://forum.oszone.net/showthread.php?t=315316)

angel_lyucifer 28-05-2016 02:53 2638212

Некорректно работает переменная %CD% в батнике.
 
Привет всем... У меня некорректно работает переменная %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 2638214

Цитата:

Цитата angel_lyucifer
При обычном запуске батника работает переменная %CD% правильно но команда не записывает в реестр нечего, когда его запускаешь с правами администратора батник записывает в реестр а переменная уже работает не правильно. »

Расставьте знаки препинания, пожалуйста.

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


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


angel_lyucifer 28-05-2016 06:41 2638223

Цитата:

Цитата Iska
reg.exe add "%ATC%" /v "TalkingClock" /t REG_SZ /d \"%~dp0TalkingClock.exe\" /f »

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

Iska 28-05-2016 08:15 2638227

Цитата:

Цитата angel_lyucifer
Ошибка синтаксиса. »

Ну, это приведённый Вами синтаксис, я его не проверял. Пробельные символы в пути? Обрамите параметр кавычками:
Код:

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

angel_lyucifer 28-05-2016 19:45 2638374

Большее спасибо Iska...


Время: 02:15.

Время: 02:15.
© OSzone.net 2001-