Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Ошибка выполнения скрипта после его запуска через автозапуск.

Ответить
Настройки темы
CMD/BAT - [решено] Ошибка выполнения скрипта после его запуска через автозапуск.

Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день друзья!

В процессе написания скрипта возникло 2 вопроса:
1) Как сделать вывод в 1 строку сообщения о успешном выполнении действия?
Пример
Echo *** eToken PKI Client 5.1 SP1) & (
START /WAIT MsiExec.exe /X%PKI% /qn) && ((
Set /a K+=1) & (
Echo *** Выполненно) & (
echo.)))

В данном случае после выполнения действия оповещение о выполнении выводится на следующей строке, как сделать вывод оповещения после выполнения команды в 1 строку?

2) При окончании работы скрипта, вводится запись в реестр (в автозапуск) чтобы скрипт продолжил отработку после перезапуска ПК, но при перезапуске скрипт выдает ошибки " файл по данному адресу не обнаружен", хотя если запустить вручную из того же места все прекрасно работает. Из-за чего такая проблема может возникать?

Пример 2
For /f "usebackq tokens=1,2* skip=2" %%i IN (`Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V Key`) DO set Ins=%%k
if not defined Ins (
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Key /d "1") & (
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Run /d ^"C:\Users\123\321.CMD^" /f
Shutdown /t 60 /f /r))
if defined Ins (
Echo *** Установка eToken PKI Client 5.1 SP1 ---) & (
START /WAIT PKI_Client\PKIClient.msi /qn /norestart) && ((
Echo Выполнена) & (
Shutdown /t 60 /f /r)))

Отправлено: 15:06, 18-01-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 8ash8:
Как сделать вывод в 1 строку сообщения о успешном выполнении действия? »
Использовать:
Код: Выделить весь код
<nul set /p Var=*** eToken PKI Client 5.1 SP1
вместо:
Цитата 8ash8:
Echo *** eToken PKI Client 5.1 SP1 »
для начала сообщения.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:35, 18-01-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


А по второму вопросу, кто может подсказать?

Отправлено: 16:46, 18-01-2016 | #3


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


8ash8, А зачем экранировать кавычки, и нужны ли они вообще здесь? Кроме того кавычки при записи в реестр экранируются обратным слешем (\").
Код: Выделить весь код
^"C:\Users\123\321.CMD^"
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:36, 18-01-2016 | #4


Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать



Вы правы, экранировать кавычки не к чему, скрипт запускается после перезагрузке, что с ними, что без них.
После перезагрузки скрипт запускается, но выдает Снимок.JPG я полагаю что при запуске скрипта из автозагрузки он почему то не понимает относительный путь к дистрибутивам. Есть мысли как это поправить? прописывать абсолютный путь не вариант.

Цитата:
8ash8, А зачем экранировать кавычки, и нужны ли они вообще здесь? Кроме того кавычки при записи в реестр экранируются обратным слешем (\").
Код: Выделить весь код

^"C:\Users\123\321.CMD^"

Отправлено: 10:57, 19-01-2016 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 8ash8:
при запуске скрипта из автозагрузки он почему то не понимает относительный путь к дистрибутивам. Есть мысли как это поправить? »
Относительный путь задаётся относительно текущего каталога. Начните с проверки того, какой именно путь является текущим для пакетного файла при запуске из «…\Run» (почему, кстати, не RunOnce/RunOnceEx?), например, добавив в код:
Код: Выделить весь код
>"%Temp%\CurrDir.txt" echo [%CD%].
и посмотрев на результат.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:21, 19-01-2016 | #6


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата 8ash8:
Есть мысли как это поправить? прописывать абсолютный путь не вариант. »
Попробуйте прописать полный путь к утилитам, расположенным рядом с батником, через %~dp0 (путь к батнику). Полный путь лучше заключить в кавычки, ибо в нем могут быть пробелы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:43, 19-01-2016 | #7


Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Цитата 8ash8:
при запуске скрипта из автозагрузки он почему то не понимает относительный путь к дистрибутивам. Есть мысли как это поправить? »
Относительный путь задаётся относительно текущего каталога. Начните с проверки того, какой именно путь является текущим для пакетного файла при запуске из «…\Run» (почему, кстати, не RunOnce/RunOnceEx?), например, добавив в код:
Код: Выделить весь код

>"%Temp%\CurrDir.txt" echo [%CD%].

и посмотрев на результат.
Я знаю, что относительный путь задается относительно текущего каталога, в моем случае батник лежит в корне этого каталога, но я не знал, что при автозапуске он его запускает из [C:\Windows\system32], поэтому программки он и не воспринимает.
В идеале скрипт должен запускаться и отрабатывать с флешки, но т.к. на разных ПК флешки могут определяться разными буквами, то полный путь задать не вариант, что можете посоветовать в этом случае?

Относительно того, что почему, не использовал RunOnce/RunOnceEx, т.к. я не давно пытаюсь писать скрипты то много не знаю и в чем преимущество использования этих веток не знаю, но буду благодарен за пояснение или ссылку с инфой.

Цитата gora:
Цитата 8ash8:
Есть мысли как это поправить? прописывать абсолютный путь не вариант. »
Попробуйте прописать полный путь к утилитам, расположенным рядом с батником, через %~dp0 (путь к батнику). Полный путь лучше заключить в кавычки, ибо в нем могут быть пробелы.
Спасибо за помощь, но в моем случае мне не подходит использование полного (абсолютного пути).

Отправлено: 14:14, 19-01-2016 | #8


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата 8ash8:
в моем случае мне не подходит использование полного (абсолютного пути). »
Тогда попробуйте сменить текущий каталог:
Код: Выделить весь код
CD /D %~dp0
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:18, 19-01-2016 | #9


Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата gora:
Цитата 8ash8:
в моем случае мне не подходит использование полного (абсолютного пути). »
Тогда попробуйте сменить текущий каталог:
Код: Выделить весь код
CD /D %~dp0
Спасибо за помощь, вопрос решился.

Скрытый текст
For /f "usebackq tokens=1,2* skip=2" %%i IN (`Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V Key`) DO set Ins=%%k
if not defined Ins (
setlocal EnableDelayedExpansion
set p=%~dp0
>"%Temp%\Dir.txt" echo !p!

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Key /d "1") & (
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Run /d ^"C:\Users\123\321.CMD^" /f
Shutdown /t 60 /f /r))
if defined Ins (
setlocal EnableDelayedExpansion
Set /p X=<"%Temp%\Dir.txt"

Echo *** Установка eToken PKI Client 5.1 SP1 ---) & (
START /WAIT PKI_Client\PKIClient.msi /qn /norestart) && ((
Echo Выполнена) & (
Shutdown /t 60 /f /r)))

Отправлено: 09:27, 22-01-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Ошибка выполнения скрипта после его запуска через автозапуск.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Логирование выполнения скрипта Alkantel AutoIt 3 30-08-2013 13:36
VBS/WSH/JS - Не работает автозапуск скрипта Dzutte Скриптовые языки администрирования Windows 7 25-01-2012 10:09
[решено] Автозапуск скрипта INGENI0US AutoIt 5 30-03-2011 17:29
Ошибка - После запуска через 1-2 мин выскакивает ошибка Radionus Microsoft Windows 2000/XP 1 01-01-2010 10:34
log выполнения Perl CGI-скрипта CBMen Вебмастеру 1 23-03-2003 14:18




 
Переход