带有 WAIT 选项的 START 命令如何
START /wait notepad.exe
START /wait notepad.exe
...与使用 CALL 命令有什么不同吗?
CALL notepad.exe
CALL notepad.exe
是否存在一种情况,根据执行的内容,一个人的行为可能与另一个人不同?
最佳答案
对于 exe 文件,我想差异几乎不重要。
但是启动一个exe你甚至不需要CALL
.
当开始另一批时,差别很大,
作为CALL
将在同一个窗口中启动它,并且被调用的批处理可以访问相同的变量上下文。
所以它也可以改变影响调用者的变量。
START
将为调用的批处理创建一个新的 cmd.exe,如果没有/b,它将打开一个新窗口。
由于是新上下文,因此无法共享变量。
差异
使用 start /wait <prog>
强>
- 当 <prog>
时,环境变量的更改会丢失结束
- 调用者等到 <prog>
完成了
使用 call <prog>
强>
- 对于 exe 可以省略,因为它等于刚开始 <prog>
- 对于 exe-prog,调用者批处理等待或启动 exe 异步,但行为取决于 exe 本身。
- 对于 batch 文件,当调用 <batch-file>
时,调用者批处理继续finishes, WITHOUT call 控件不会返回给调用者批处理
附录:
使用 CALL
可以更改参数(对于批处理文件和 exe 文件),但仅当它们包含插入符号或百分号时。
call myProg param1 param^^2 "param^3" %%path%%
将扩展为(从批处理文件中)
myProg param1 param2 param^^3 <content of path>
关于windows - CALL 命令与 START with/WAIT 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13257571/