Возобновить пакетный скрипт после перезагрузки компьютера - PullRequest
2 голосов
/ 26 июля 2010

У меня есть несколько старых машин под управлением Windows 2000 Pro и IE 5.0, которые я хочу обновить до IE 6 с помощью Silverlight.Я загрузил установщики IE6 и Silverlight с веб-сайтов Microsoft, и, к счастью, у них обоих есть параметры командной строки, позволяющие им работать в «тихом режиме».

Я поместил две команды в пакетный скрипт DOS и запустил его,но установщик IE6 требует, чтобы компьютер автоматически перезагружался, поэтому вопрос заключается в том, как возобновить выполнение сценария и запустить вторую команду (установите Silverlight).

Мой пакетный файл сейчас очень прост:

ie6setup.exe /Q
silverlight.exe /q

Насколько мне известно, пакетные файлы не могут возобновить выполнение после перезагрузки компьютера.Есть ли способ заставить их сделать это?Есть ли другой способ сделать то, что мне нужно.

Спасибо

Ответы [ 4 ]

4 голосов
/ 06 ноября 2013

На основании сообщения Тима, которое при тестировании добавило «два» к пакетному файлу, в результате чего не удалось найти метку пакета «onetwo», поэтому внесены изменения для чтения и записи «текущей» переменной из отдельного текстового файла,оставив пакетный файл без изменений;

@echo off
call :Resume
goto %current%
goto :eof

:one
::Add script to Run key
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v %~n0 /d %~dpnx0 /f
echo two >%~dp0current.txt
echo -- Section one --
pause
shutdown -r -t 0
goto :eof

:two
echo three >%~dp0current.txt
echo -- Section two --
pause
shutdown -r -t 0
goto :eof

:three
::Remove script from Run key
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v %~n0 /f
del %~dp0current.txt
echo -- Section three --
pause
goto :eof

:resume
if exist %~dp0current.txt (
    set /p current=<%~dp0current.txt
) else (
    set current=one
)
3 голосов
/ 26 июля 2010

Вы можете поместить вторую команду в эксклюзивный пакетный файл и добавить запись в regedit для автоматического запуска этого пакетного файла при запуске Windows, заставляя silverlight выполняться после перезагрузки компьютера.

Вы слышали о msconfig ? В некоторых системах PATH regedit, который вы ищете:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

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

1 голос
/ 26 июля 2010

Если вы выполняете установку IE6 с помощью команды ie6setup.exe /q /r:n, она не перезагрузится автоматически (см. на этой странице ). Затем теоретически вы можете установить SilverLight немедленно, а затем перезагрузить компьютер; но есть вероятность, что установка SL откажется из-за необходимости перезагрузки, но попробовать не помешает ...

0 голосов
/ 07 июня 2012

Я знаю, это немного старовато, но это работает удивительно:

@echo off
call :Resume
goto %current%
goto :eof

:one
echo two >>myfile.cmd
::REBOOT HERE
goto :eof

:two
echo resumed here
goto :eof

:resume
rem THIS PART SHOULD BE AT THE BOTTOM OF THE FILE
set current=one
...