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

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

vasya00 31-07-2015 19:22 2535003

Особенность работы CMD из автозапуска
 
Столкнулся с такой проблемой, запускаю скрипт из ..CurrentVersion\Run, куда прописываю его из RunOnceEx.cmd во время установки WinXP. Примерно следующего содержания:
Код:

reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "2" /f
DEL "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\Google Chrome.lnk"
rd /Q /S "%USERPROFILE%\€§Ўа***®Ґ\‘бл«ЄЁ"
DEL "%USERPROFILE%\€§Ўа***®Ґ\*" /F /Q
DEL "%WINDIR%\system32\CleanUp.cmd"
shutdown.exe -r -f -t 600 -c "Windows XP will now restart in 5 minute
pause

Но почему-то из автозапуска упорно не работают:
1) удаление себя, да и чего либо, из HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
2)перезагрузка
3)команда "pause" хотя бы чтобы посмотреть что там происходит
И в то же время, то же скрипт, запущенный вручную отлично срабатывает по всем пунктам.
Подскажете, пожалуйста, в чем может быть проблема?
Спасибо!

vasya00 31-07-2015 19:43 2535014

Экспериментально, выяснил что команды, в том числе, на перезагрузку и "pause" выполняются в начале скрипта, а примерно с середины игнорируются, или игнорируется все с середины, непонятно, что он там делает, почему так может происходить именно в автозапуске?
Спасибо!

vasya00 01-08-2015 13:05 2535316

Подскажите, хотя бы, как можно посмотреть результат работы скрипта если он выполняется из HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, при условии что "pause" не срабатывает, можно ли как-то отследить что выполняется?
Спасибо!

Nordek 01-08-2015 13:56 2535355

vasya00, Вот ваша ошибка: "Избр***ое".
Код:

rd /Q /S "%USERPROFILE%\Избр***ое\Ссылки"
DEL "%USERPROFILE%\Избр***ое\*" /F /Q


NickM 01-08-2015 13:59 2535361

Оформите вывод действий команд заданных в скрипте в файл - там увидите. Не исключено, что с кодировкой неразбериха.

vasya00 01-08-2015 21:45 2535595

Nordek, да дело даже не в этом, это ладно, спасибо конечно, но он не обрабатывает вполне корректные команды "pause" и "shutdown.exe -r -f -t 600 -c "Windows XP will now restart in 5 minute"
NickM, попробЫвал сделать вывод в файл, хорошая идея, вывел только одно "Для продолжения нажмите любую клавишу . . . ", хотя по факту запроса не было, остальное тишина..

Foreigner 01-08-2015 22:20 2535610

vasya00, Попробуйте заменить -r -t -f на /r /t /f

vasya00 01-08-2015 22:25 2535613

Попробовал так:
Код:

reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "2" /f>> c:\1.txt
pause
DEL "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\Google Chrome.lnk">> c:\1.txt
pause>> c:\1.txt
DEL "%USERPROFILE%\€§Ўа***®Ґ\*" /F /Q>> c:\1.txt
pause> c:\1.txt
DEL "%WINDIR%\system32\CleanUp.cmd">> c:\1.txt
pause>> c:\1.txt
shutdown.exe -r -f -t 600 -c "Windows XP will now restart in 5 minute>> c:\1.txt
pause>> c:\1.txt

Первую паузу отрабатывает, в файл выводит одно "Для продолжения нажмите любую клавишу . . . " и из автозагрузки себя убирает, то есть, 2 строчки только работают.. Себя удаляет из system32, но в файл не выводит, и не перезагружает, при том что если вручную запустить, а не с авто загрузки то все норм.

Georgio 02-08-2015 01:36 2535675

Цитата:

Цитата vasya00
Себя удаляет из system32, но в файл не выводит »

Цитата:

Цитата vasya00
Код:

DEL "%WINDIR%\system32\CleanUp.cmd"
»




Так у Вас пакетный файл сам себя удаляет?

И как же после этого должна выполняться последующая команда (перезагрузка)?

Да и выводить команда "DEL" ничто в файл не будет, так как у неё отсутствует "StdOut".


Хотя, если уж так хотите такую последовательность, то попробуйте такой "трюк":

Код:

reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "2" /f
del "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\Google Chrome.lnk"
del "%USERPROFILE%\€§Ўа***®Ґ\*" /f /q
del "%~f0"& shutdown.exe -r -f -t 600 -c "Windows XP will now restart in 5 minute"

.


Пояснение:

1)
Код:

del "%~f0"
-- пакетный файл удаляет сам себя;

2) команда для "самоудаления" и последующая команда для перезагрузки объединены с помощью амперсанда.

vasya00 02-08-2015 20:37 2535930

Точно, спасибо! Интересно что, при запуске вручную скрипт отрабатывает все команды, в том числе и после самоудаления, а при автозапуске только до самоудаления..


Время: 12:31.

Время: 12:31.
© OSzone.net 2001-