win7下bat打开cmd执行命令
今天想将服务器上的服务写成批处理文件,方便机器重启时,启动所有需要启动的服务
1.新建start.bat
新建文本文件,改名为start.bat
注:
为了防止乱码,将文件编码改为:utf-8,保存
2.了解基本命令
@echo off 从本行开始关闭回显(批处理第一行一般都是这个)
@ 关闭单行回显
echo /? 显示信息,或将命令回显打开或关上。 ECHO [ON | OFF] ECHO [message] 要显示当前回显设置,键入不带参数的 ECHO。
start
C:\Users\Administrator>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 的参数。
cmd
C:\Users\Administrator>cmd/? 启动 Windows 命令解释器的一个新实例 CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] string] /C 执行字符串指定的命令然后终止 /K 执行字符串指定的命令但保留 /S 修改 /C 或 /K 之后的字符串处理(见下) /Q 关闭回显 /D 禁止从注册表执行 AutoRun 命令(见下) /A 使向管道或文件的内部命令输出成为 ANSI /U 使向管道或文件的内部命令输出成为 Unicode /T:fg 设置前台/背景颜色(详细信息见 COLOR /?) /E:ON 启用命令扩展(见下) /E:OFF 禁用命令扩展(见下) /F:ON 启用文件和目录名完成字符(见下) /F:OFF 禁用文件和目录名完成字符(见下) /V:ON 使用 ! 作为分隔符启用延迟的环境变量 扩展。例如,/V:ON 会允许 !var! 在执行时 扩展变量 var。var 语法会在输入时 扩展变量,这与在一个 FOR 循环内不同。 /V:OFF 禁用延迟的环境扩展。
3.示例
start.bat
@echo off start cmd /k "cd/d E:\test &&java -jar test1.jar" @echo off start cmd /k "cd/d E:\test &&java -jar test2.jar"
双击执行start.bat,会打开两个命令窗口
当使用 cmd /k,按下ctrl+c,会终止执行,原窗口不会关闭
当换成cmd /c,按下ctrl+c,会终止执行,原窗口会关闭