[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理命令start的几种用法有何区别?

我从网上下载了一段批处理代码,是用于windows xp的无人值守安装的,代码如下:
  1. REM +=======================================================+
  2. REM | Comment out what you don't need. These are mostly     |
  3. REM | examples to give you an idea of how it all works.     |
  4. REM +=======================================================+
  5. REM +=======================================================+
  6. REM | Finding CDROM driveletter                             |
  7. REM |-------------------------------------------------------|
  8. set tagfile=\WIN51
  9. for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist "%%i:%tagfile%" set CDDRIVE=%%i:
  10. REM +=======================================================+
  11. REM +=======================================================+
  12. REM | We should be already in system32, this is just to be  |
  13. REM | sure                                                  |
  14. REM |-------------------------------------------------------|
  15. %SystemDrive%
  16. cd %SystemRoot%\system32
  17. REM +=======================================================+
  18. REM +=======================================================+
  19. REM | Trick Windows into identifying the original setup.exe |
  20. REM | deleting the setup.exe will not work, just rename it  |
  21. REM |-------------------------------------------------------|
  22. if exist setup.exe ren setup.exe setupold.exe
  23. if exist setupORG.exe ren setupORG.exe setup.exe
  24. REM +=======================================================+
  25. %CDDRIVE%\Drivers\SetDevicePath.exe %CDDRIVE%\Drivers
  26. start %CDDRIVE%\Drivers\WatchDriverSigningPolicy.exe
  27. REM +=======================================================+
  28. REM | Finally start the installation with the originally    |
  29. REM | given parameters                                      |
  30. REM |-------------------------------------------------------|
  31. start /WAIT setup.exe %*
  32. REM +=======================================================+
复制代码
具体各行的用途,在代码中已经有所注释了,我现在有如下问题不明白,请高手帮助:
1、同样是调用外部程序,这个批处理中使用了三种方式:
(1)%CDDRIVE%\Drivers\SetDevicePath.exe %CDDRIVE%\Drivers
(2)start %CDDRIVE%\Drivers\WatchDriverSigningPolicy.exe
(3)start /WAIT setup.exe %*
其中,SetDevicePath.exe就是帮助将驱动程序所在路径添加进注册表的程序,运行的时候没有见到GUI;WatchDriverSigningPolicy.exe作用在于使Windows接受未签名的驱动程序,运行的时候也未见到GUI;setup.exe其实就是windows xp的GUI安装阶段的安装程序。
现在我的疑问是,这三种用法(即第一种,直接键入程序名;第二种,使用start;第三种,使用start /wait)有何区别。特别是第一种和第三种有何区别,我对批处理不是很熟,但我听说直接键入程序名的用法中批处理也需要等待该程序运行结束在继续执行后面的代码,那步就和start /wait一样了吗,为什么还需要特别使用start /wait。这个批处理的作者在同一个批处理中分别使用了上述三种用法,我相信应当是有区别的,但是我不明白,查了相关的资料和论坛的帖子也没有想明白。还请高手不吝赐教。
2、start /WAIT setup.exe %*一句中,后面的那个%*是什么意思,这个字符是start的参数还是批处理的其他用法的参数?

谢谢cjiabing版主的回复,可我还是不明白这几种用法之间的区别,特别是第一种 “直接在批处理中使用路径名”和第三种使用“start /wait”之间有什么区别,这两种用法不都是要等启动的程序运行结束后在继续执行后面的代码吗,那为什么要特别写上“start /wait”呢。

TOP

返回列表