win7下bat打开cmd执行命令

时间:2024-03-06 15:05:10

今天想将服务器上的服务写成批处理文件,方便机器重启时,启动所有需要启动的服务

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! 在执行时
        扩展变量 varvar 语法会在输入时
        扩展变量,这与在一个 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,会终止执行,原窗口会关闭