Pys*_*sis 4 windows script batch
我有一个批处理脚本,我基本上希望它向用户显示一个记事本窗口,其中打开了一个配置文件,供用户在每次运行脚本时进行编辑,并且我希望命令提示符等到该程序关闭才能继续执行,并运行使用该配置文件的程序。
我想这样做是因为我不想使用“set /P”命令样式在批处理脚本中获取用户输入,并且必须设置解析读取和写入到有许多值要检查的配置文件。
我相信在 Windows 上执行任何可执行程序时的标准行为是“exe”文件,它将在自己的进程中打开程序并立即控制回到脚本/命令提示符。对于“bat”和“cmd”脚本文件,它将执行脚本并等待直到控制权返回到第一个脚本或命令提示符。这应该是至少使用“CALL”命令调用另一个脚本或直接调用它时的行为。
现在在 Linux 上,我相信可执行内容的默认行为是可以没有扩展名的本机机器代码和“sh”文件之类的脚本,以阻塞方式执行,除非您指定与号(“&”)字符在输入线上的某个地方。
所以我试图在 Windows 上实现阻塞行为,因为它在 Linux 上更容易实现,并且希望关闭程序以触发原始脚本继续,或者将控制权返回到命令提示符。
您可以使用任一start
命令(注意/B /WAIT
开关顺序)
start "" /B /WAIT notepad.exe "somefile"
Run Code Online (Sandbox Code Playgroud)
或者干脆
notepad.exe "somefile"
Run Code Online (Sandbox Code Playgroud)
按照上面的链接:
当您运行 32 位图形用户界面 (
GUI
) 应用程序时,cmd
在返回命令提示符之前不等待应用程序退出。如果您从命令脚本运行应用程序,则不会发生此行为。
编辑关于卡兰的评论:为什么需要 /B?
/B
无需打开新的命令提示符窗口即可启动应用程序。
/B
。/B
开关会导致在新的命令提示符窗口中运行该工具,该窗口将在结束后立即关闭并且所有输出都将丢失。因此,我将这些/B /WAIT
开关一起使用作为一般原则:无论启动程序的配置如何,都保持相同的行为,并且不考虑它......
使用示例和来自 StackOverflow 的更多链接对/B /WAIT
开关顺序进行补充:不起作用(参数被忽略)而起作用...start /WAIT /B
/wait
start /B /WAIT
归档时间: |
|
查看次数: |
9987 次 |
最近记录: |