start 命令用来启动一个单独的窗口来运行指定的程序(如:exe 文件)或命令(如:批处理脚本 *.bat)。
在使用 start 之前,先使用 start /? 命令查看 start 的手册信息:
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B] [command/program] [parameters]
参数描述:
"title" 在窗口标题栏中显示的标题。
path 启动目录。
B 启动应用程序,但不创建新窗口。应用程序已忽略 ^C 处理。除非应用程序启用 ^C 处理,否则 ^Break 是唯一可以中断该应用程序的方式。
I 新的环境将是传递给 cmd.exe 的原始环境,而不是当前环境。
MIN 以最小化方式启动窗口。
MAX 以最大化方式启动窗口。
SEPARATE 在单独的内存空间中启动 16 位 Windows 程序。
SHARED 在共享内存空间中启动 16 位 Windows 程序。
LOW 在 IDLE 优先级类中启动应用程序。
NORMAL 在 NORMAL 优先级类中启动应用程序。
HIGH 在 HIGH 优先级类中启动应用程序。
REALTIME 在 REALTIME 优先级类中启动应用程序。
ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。
BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。
NODE 将首选非一致性内存结构 (NUMA) 节点指定为十进制整数。
AFFINITY 将处理器关联掩码指定为十六进制数字。进程被限制在这些处理器上运行。当 /AFFINITY 和 /NODE 结合时,会对关联掩码进行不同的解释。指定关联掩码,正如 NUMA 节点的处理器掩码正确移动到零位起始位置一样。进程被限制在指定关联掩码和 NUMA 节点之间的那些通用处理器上运行。如果没有通用处理器,则进程被限制在指定的 NUMA 节点上运行。
WAIT 启动应用程序并等待它终止。
command/program 如果它是内部 cmd 命令或批文件,则该命令处理器是使用 cmd.exe 的 /K 开关运行的。这表示运行该命令之后,该窗口将仍然存在。如果它不是内部 cmd 命令或批文件,则它就是一个程序,并将作为一个窗口化应用程序或控制台应用程序运行。
parameters 这些是传递给 command/program 的参数。
注意:在 64 位平台上不支持 SEPARATE 和 SHARED 选项。
实例:使用 start 命令启动 notepad.exe 记事本程序。
@echo off start notepad.exe
实例:使用 start 命令启动一个子脚本,并且设置脚本的 title 为 “Sub Title”。
@echo off start "Sub Title" sub.bat
运行效果:
实例:以最小化和最大化方式启动记事本 notepad.exe 程序。
@echo off rem 最小化启动记事本,在任务栏可以看见 start /MIN notepad.exe rem 最大化启动记事本,当于我们点击了最大化按钮 start /MAX notepad.exe
实例:本例使用 /WAIT 实现启动记事本应用程序,并且等待关闭记事本后才结束主批处理脚本。
@echo off echo 启动记事本程序 start /WAIT notepad.exe echo 记事本程序关闭了...
效果图如下:
实例:运行 start+文件的绝对存储路径打开对应的文件;
@echo off start D:\tmp.txt
效果如下图:
当然我们也可以使用 “start 目录地址” 打开资源管理器,或者使用 “start 网站URL” 通过默认浏览器打开指定的 URL。