2010-07-26 124 views
1

我有一堆运行Windows 2000 Pro和IE 5.0的旧机器,我想用Silverlight升级到IE 6。我从微软的网站下载了IE6和Silverlight安装程序,幸运的是它们都有命令行选项,允许它们以“静音模式”运行。计算机重新启动后恢复批处理脚本

我把这两个命令放在一个DOS批处理脚本中并运行它,但IE6安装程序要求自动重启计算机,所以问题是如何恢复脚本并运行第二个命令(安装Silverlight)。

我的批处理文件,现在的问题是非常简单的:

ie6setup.exe /Q 
silverlight.exe /q 

据我所知,批处理文件不能重新启动计算机后继续执行。有没有办法让他们做到这一点?是否有另一种方法来完成我所需要的。

谢谢

回答

3

你可以把第二个命令在一个独特的批处理文件,并添加一个条目,以regedit以在Windows的启动时自动运行该批处理文件,提高Silverlight的计算机重新启动后执行。

您是否听说过msconfig?在某些系统上,您正在寻找的注册表PATH是:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

但是您可能想检查一下。如果你想制作一个批处理文件在注册表中写入该密钥,你可能应该看看this tutorial

+0

不想让多个脚本文件和注册表混乱,但它似乎是升级这些旧机器的唯一方法。 – 2010-07-26 20:06:24

1

如果使用命令ie6setup.exe /q /r:n执行IE6安装,那么它将不会自动重启(有关详细信息,请参见this page)。然后理论上你可以立即安装SilverLight,然后重新启动;但有一个机会,SL安装由于需要重新启动的会拒绝,但它不会伤害尝试吧...

+0

好戏。我试过了,正如你所说,在重新启动计算机之前,Silverlight将无法识别新的浏览器。 – 2010-07-26 20:05:18

+0

哦,伤心......但并不奇怪。 – ewall 2010-07-27 13:10:55

1

我知道它有点老,但这个工作得:

@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 
+0

....它应该与注册表调整来启动脚本...或者只是将它放在启动文件夹中。 – 2012-06-07 04:02:38

3

根据Tim的帖子,当测试时,将“two”添加到批处理文件中导致无法找到批处理标签“onetwo”,所以修改为&从单独的文本文件中写入“current”变量,保持批处理文件不变;

@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 
) 
+0

这是非常好的,我将用重启选项进行无声驱动安装测试:) – 2016-04-22 19:22:38

相关问题