Войти

Показать полную графическую версию : Особенность работы CMD из автозапуска


vasya00
31-07-2015, 19:22
Столкнулся с такой проблемой, запускаю скрипт из ..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
Экспериментально, выяснил что команды, в том числе, на перезагрузку и "pause" выполняются в начале скрипта, а примерно с середины игнорируются, или игнорируется все с середины, непонятно, что он там делает, почему так может происходить именно в автозапуске?
Спасибо!

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

Nordek
01-08-2015, 13:56
vasya00, Вот ваша ошибка: "Избр***ое".
rd /Q /S "%USERPROFILE%\Избр***ое\Ссылки"
DEL "%USERPROFILE%\Избр***ое\*" /F /Q

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

vasya00
01-08-2015, 21:45
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

vasya00
01-08-2015, 22:25
Попробовал так:
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
Себя удаляет из 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) команда для "самоудаления" и последующая команда для перезагрузки объединены с помощью амперсанда.

vasya00
02-08-2015, 20:37
Точно, спасибо! Интересно что, при запуске вручную скрипт отрабатывает все команды, в том числе и после самоудаления, а при автозапуске только до самоудаления..




© OSzone.net 2001-2012