Показать полную графическую версию : Особенность работы 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" хотя бы чтобы посмотреть что там происходит
И в то же время, то же скрипт, запущенный вручную отлично срабатывает по всем пунктам.
Подскажете, пожалуйста, в чем может быть проблема?
Спасибо!
Экспериментально, выяснил что команды, в том числе, на перезагрузку и "pause" выполняются в начале скрипта, а примерно с середины игнорируются, или игнорируется все с середины, непонятно, что он там делает, почему так может происходить именно в автозапуске?
Спасибо!
Подскажите, хотя бы, как можно посмотреть результат работы скрипта если он выполняется из HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, при условии что "pause" не срабатывает, можно ли как-то отследить что выполняется?
Спасибо!
vasya00, Вот ваша ошибка: "Избр***ое".
rd /Q /S "%USERPROFILE%\Избр***ое\Ссылки"
DEL "%USERPROFILE%\Избр***ое\*" /F /Q
Оформите вывод действий команд заданных в скрипте в файл - там увидите. Не исключено, что с кодировкой неразбериха.
Nordek, да дело даже не в этом, это ладно, спасибо конечно, но он не обрабатывает вполне корректные команды "pause" и "shutdown.exe -r -f -t 600 -c "Windows XP will now restart in 5 minute"
NickM, попробывал сделать вывод в файл, хорошая идея, вывел только одно "Для продолжения нажмите любую клавишу . . . ", хотя по факту запроса не было, остальное тишина..
Foreigner
01-08-2015, 22:20
vasya00, Попробуйте заменить -r -t -f на /r /t /f
Попробовал так:
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, но в файл не выводит, и не перезагружает, при том что если вручную запустить, а не с авто загрузки то все норм.
Себя удаляет из system32, но в файл не выводит »
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) команда для "самоудаления" и последующая команда для перезагрузки объединены с помощью амперсанда.
Точно, спасибо! Интересно что, при запуске вручную скрипт отрабатывает все команды, в том числе и после самоудаления, а при автозапуске только до самоудаления..
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.