|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скомпилированный из "батника" exe работает только в папке с исходниками. |
|
|
CMD/BAT - [решено] Скомпилированный из "батника" exe работает только в папке с исходниками.
|
Старожил Сообщения: 216 |
Профиль | Отправить PM | Цитировать Доброго времени суток всем!
Может у кого была подобная проблема, что посоветуете. Написал батник для замены нужного текста в различных текстовых файлах. В основе консольная утилита nhrt (nhreplace) Для удобства пользования скомпилировал программой Quick Batch File Compiler исполняемый exe файл. Но вот незадача, что батник, что exe нормально отрабатывают только в папке с исходниками. С других папок запускаются, но половина команд не обрабатывается. Что-то неправильно с путями. Сам bat файл: @echo off chcp 1251 >nul "%MYFILES%\url.vbs" @echo move /Y J:\Download\Compressed\nhrt\plist_tv.m3u "%MYFILES%" cd "%MYFILES%" start /wait "" "%MYFILES%\nhrt.exe" -list:delete_group.txt plist_tv.m3u start /wait "" "%MYFILES%\nhrt.exe" -list:replace_list.txt plist_tv.m3u TIMEOUT /T 5 /NOBREAK @echo move /Y "C:\Users\Uragan66\AppData\Local\plist_tv.m3u J:\Download\Compressed\nhrt" exit Подскажите, пожалуйста, что в нём не так ? |
|
Отправлено: 22:08, 10-05-2019 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать если код выше полный, то где назначение переменной %MYFILES% ?
если неполный, то вижу что на разных дисках работа идет, а командой "cd" можно переходить только в пределах текущего диска, для перехода и с учетом диска надо использовать ключ /d, вот так: cd /d "Диск:\Папка" |
Отправлено: 22:53, 10-05-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 216
|
Профиль | Отправить PM | Цитировать Цитата:
cd /d "Диск:\Папка" пробовал - безрезультатно. Вернее из ком. строки работает, если использовать путь C:\Users\User\AppData\Local, из скомпилированного exe не хочет. |
|
Отправлено: 23:40, 10-05-2019 | #3 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Uragan66, а если попробовать вместо Cd после Chcp
Pushd "%MYFILES%\" и, соответственно, далее в коде убрать все поминания на %MYFILES%\ Кстати, а где находится утилита nhrt.exe? Она тоже распаковывается в эту злополучную папку %myfiles% ? Она там присутствует? Может быть, надо указать полный реальный путь к ней? Или скопировать её в папку прописанную в параметрах системы в путях, например, windows\system32, соответственно убрав при вызове утилиты всё то же %MYFILES%\ |
------- Последний раз редактировалось megaloman, 11-05-2019 в 06:26. Отправлено: 06:01, 11-05-2019 | #4 |
Старожил Сообщения: 216
|
Профиль | Отправить PM | Цитировать Цитата:
Цитата megaloman:
P.S. нужно наверное только прописывать путь для nhrt.exe в PATH. Но как это правильно прописать в моём bat файле ? |
|||
Последний раз редактировалось Uragan66, 11-05-2019 в 07:57. Отправлено: 07:34, 11-05-2019 | #5 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Uragan66:
Как минимум, для теста: @echo off rem Непонятно зачем здесь это, поэтому пока сделаем так: rem chcp 1251 >nul set "MYFILES=C:\Users\%UserName%\AppData\Local\" "%MYFILES%\url.vbs" @echo move /Y J:\Download\Compressed\nhrt\plist_tv.m3u "%MYFILES%" rem cd "%MYFILES%" pushd "%MYFILES%" start "" /D "%MYFILES%" /wait "nhrt.exe" "-list:delete_group.txt plist_tv.m3u" start "" /D "%MYFILES%" /wait "nhrt.exe" "-list:replace_list.txt plist_tv.m3u" TIMEOUT /T 5 /NOBREAK popd @echo move /Y "C:\Users\Uragan66\AppData\Local\plist_tv.m3u J:\Download\Compressed\nhrt" pause&exit /b где расположены: Цитата:
|
||
------- Последний раз редактировалось YuS_2, 11-05-2019 в 08:45. Отправлено: 08:22, 11-05-2019 | #6 |
Старожил Сообщения: 216
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Цитата YuS_2:
|
||
Отправлено: 09:19, 11-05-2019 | #7 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 10:06, 11-05-2019 | #8 |
Старожил Сообщения: 216
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
|
|
Отправлено: 11:21, 11-05-2019 | #9 |
Старожил Сообщения: 216
|
Профиль | Отправить PM | Цитировать Путём взаимоисключения пришел к такому коду:
@echo off set "MYFILES=C:\Users\%UserName%\AppData\Local\" pushd "%MYFILES%" url.vbs move /Y J:\Download\Compressed\nhrt\plist_tv.m3u "%MYFILES%" TIMEOUT /T 2 /NOBREAK start nhrt.exe -list:delete_group.txt plist_tv.m3u TIMEOUT /T 2 /NOBREAK start nhrt.exe -list:replace_list.txt plist_tv.m3u TIMEOUT /T 3 /NOBREAK popd move /Y "%MYFILES%\plist_tv.m3u" J:\Download\Compressed\nhrt exit Спасибо всем за подсказки! |
Отправлено: 11:54, 11-05-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Не открываются "Скомпилированный HTML-файл справки" | vovikrus | Хочу все знать | 5 | 14-07-2011 17:13 | |
CMD/BAT - [решено] запуск *.exe с параметром "y" с помощью батника | sharky lions | Скриптовые языки администрирования Windows | 22 | 18-04-2011 20:34 | |
"2 Reboot (explorer.exe)" самодельная "прога" перезагружающая оболочку "explorer.exe" | rizz | Автоматическая установка приложений | 14 | 30-11-2009 14:32 | |
Разное - [решено] Вместо "Мой компьютер" или при двойном щелчке на папке открывается "Поиск" | ZoolooS | Microsoft Windows 2000/XP | 4 | 18-06-2008 16:34 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 |
|