windows - CALL 命令与 START with/WAIT 选项

标签 windows batch-file

带有 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/

相关文章:

c# - 使用 C# Windows 10 是否可以判断视频/相机当前是否被任何应用程序使用?

windows - 为什么这个增量不能批量工作?

powershell - 使用启动过程调用其他Powershell文件时出现问题

c# - 如何将DataGridView动态添加到TabPage

C# - 在键入值时刷新文本框

c++ - 监视 Windows 壁纸上的位置

batch-file - 批处理 - If, ElseIf, Else

javascript - 如何使用VBS或BAT脚本发送url请求

xslt - 生成 xslt 报告

batch-file - 如何根据指定的文件夹路径获取目录树中每个文件的相对路径?