start 命令是一个非常灵活的工具,能够帮助你管理命令行窗口和启动各种程序。这些组合技巧可以帮助你更高效地使用 start 命令,根据具体需求灵活运用。这些组合技巧能够帮助你在使用 start 命令时更加灵活和高效。

start | Microsoft Learn

 

为了更好地理解和分类 START 命令的各个功能参数,可以将其按功能分为以下几个类别,并整理成表格形式:

类别 参数 描述
窗口配置 ["title"] 在窗口标题栏显示的标题。
  /D path 设置程序的启动目录。
  /MIN 启动窗口并最小化。
  /MAX 启动窗口并最大化。
  /SEPARATE 启动16位 Windows 程序,在单独的内存空间中运行。
  /SHARED 启动16位 Windows 程序,在共享内存空间中运行。
  B 启动应用程序而不创建新窗口。应用程序禁用 Ctrl+C 处理,只有 Ctrl+Break 可中断应用程序。
  I 使用原始环境变量,而不是当前环境。
优先级设置 /LOW 设置应用程序的优先级为空闲优先级(IDLE)。
  /NORMAL 设置应用程序的优先级为正常优先级(NORMAL)。
  /HIGH 设置应用程序的优先级为高优先级(HIGH)。
  /REALTIME 设置应用程序的优先级为实时优先级(REALTIME)。
  /ABOVENORMAL 设置应用程序的优先级为高于正常优先级(ABOVENORMAL)。
  /BELOWNORMAL 设置应用程序的优先级为低于正常优先级(BELOWNORMAL)。
处理器亲和性 /NODE <NUMA node> 指定 NUMA 节点,优先选择指定的节点进行处理。
  /AFFINITY <hex affinity mask> 设置处理器亲和性掩码,指定进程运行在哪些处理器上。掩码以十六进制表示。
其他功能 /WAIT 启动应用程序并等待其终止。
  `/MACHINE <x86 amd64
命令或程序 command/program 需要启动的命令或程序。如果是内部命令或批处理文件,将使用 /K 开关执行。否则运行应用程序。
  parameters 传递给命令或程序的参数。

各个参数的功能详细说明:

  • 窗口配置类:控制启动的窗口状态,如标题、启动目录、窗口大小等。
  • 优先级设置类:用于设置启动程序时的优先级,影响操作系统如何分配资源给该程序。
  • 处理器亲和性类:用于优化程序在多核处理器或 NUMA(非一致性内存架构)系统中的执行效率,控制程序在哪些处理器上运行。
  • 其他功能:包括等待程序完成、指定机器架构等附加功能。
  • 命令或程序类:用于指定要启动的命令或应用程序,并传递参数。

示例:

  1. 启动一个程序并最小化窗口:

    cmdCopy Code
    start /MIN myprogram.exe
  2. 启动程序并设置其优先级为高:

    cmdCopy Code
    start /HIGH myprogram.exe
  3. 启动程序并指定其 NUMA 节点和亲和性:

    cmdCopy Code
    start /NODE 1 /AFFINITY 0x3 myprogram.exe
  4. 启动程序并在等待其完成后返回:

    cmdCopy Code
    start /WAIT myprogram.exe

通过这样的分类和表格化,可以更加清晰地理解和使用 START 命令的不同功能。


你可以把电脑的 CPU(处理器)想象成一个餐厅的后厨,里面有多个厨师(处理器核心)。

1. 基础概念:/AFFINITY (指定具体哪位厨师来做菜)

  • 命令start /AFFINITY 掩码 程序.exe

  • 通俗解释:这个命令就像是你点菜时,指定必须由后厨里的某几位厨师来为你做这道菜。

  • “十六进制掩码”:这是一个数字,它像一张轮班表,用二进制来表示哪些厨师可以工作。

    • 例如,一个4核CPU,掩码 3 的二进制是 0011。这代表:

      • 厨师1(核心0):可以工作(1)

      • 厨师2(核心1):可以工作(1)

      • 厨师3(核心2):工作(0)

      • 厨师4(核心3):工作(0)

    • 所以,你启动的程序只会跑在核心0和核心1上。

简单来说:/AFFINITY 就是让你精确控制程序可以使用哪些CPU核心。


2. 高级用法:/AFFINITY 和 /NODE 结合(指定区域和厨师)

现在,我们把后厨扩大,分成两个独立的区域(NUMA节点),比如中餐区(节点0) 和西餐区(节点1)。每个区域都有自己的厨师。

  • 命令start /NODE 1 /AFFINITY 掩码 程序.exe

  • 通俗解释:这个命令的意思是:

    1. 首先,你指定这道菜必须在 西餐区(节点1) 制作。(/NODE 1

    2. 然后,你在西餐区内部,再指定具体由哪几位厨师来做。(/AFFINITY 掩码

这里的“掩码”解释方式变了,这是关键点:

技术文档里说“将 NUMA 节点的处理器掩码向右移位以从零位开始”,意思是:

  • 这个掩码不再是针对整个后厨,而是只针对你指定的那个区域(节点)

  • 比如,西餐区(节点1)有4个厨师(核心4,5,6,7)。当你使用 /AFFINITY 3(二进制0011)时:

    • 这个掩码会应用到西餐区内部,从它的第一个厨师开始算起

    • 所以 0011 就代表:

      • 西餐区的厨师1(核心4):可以工作(1)

      • 西餐区的厨师2(核心5):可以工作(1)

      • 西餐区的其他厨师:工作(0)

最终效果是:程序被限制在“西餐区”里,并且只使用该区域内的核心4和核心5。


3. 特殊情况:如果没有匹配的厨师

  • 通俗解释:如果你指定的区域(比如西餐区)里,你要求的那几位厨师正好都请假了(即掩码指定的核心在该节点上不存在),那怎么办呢?

  • 规则是:那就放宽要求,只要是在西餐区的厨师,谁都可以来做这道菜。程序还是会在这个NUMA节点上运行,但不再限制具体用哪个核心。

你可以把 start /NODE /AFFINITY 想象成一个两步点餐法

  1. 选区域 (/NODE):先决定在“中餐区”还是“西餐区”做菜。

  2. 选厨师 (/AFFINITY):然后在这个区域内部,再点名要哪几位厨师。

这样结合使用,可以更好地优化程序性能,尤其是在服务器等多CPU插槽(NUMA架构)的系统上,能让程序和数据离得更近,跑得更快。


按功能分类整理的 START 命令的参数,并将其表格化以便更清晰理解。

START 命令参数分类表

类别 参数 描述
窗口配置 /MIN 启动窗口并最小化.
  /MAX 启动窗口并最大化.
  /SEPARATE 启动 16 位 Windows 程序,在单独的内存空间中运行(64 位平台不支持)。
  /SHARED 启动 16 位 Windows 程序,在共享内存空间中运行(64 位平台不支持)。
  /D path 设置程序的启动目录.
  ["title"] 设置窗口的标题栏内容.
优先级设置 /LOW 设置程序的优先级为空闲优先级(IDLE)。
  /NORMAL 设置程序的优先级为正常优先级(NORMAL)。
  /HIGH 设置程序的优先级为高优先级(HIGH)。
  /REALTIME 设置程序的优先级为实时优先级(REALTIME)。
  /ABOVENORMAL 设置程序的优先级为高于正常优先级(ABOVENORMAL)。
  /BELOWNORMAL 设置程序的优先级为低于正常优先级(BELOWNORMAL)。
处理器亲和性 /NODE <NUMA node> 在 NUMA 系统上指定 NUMA 节点,使进程在指定节点的内存上运行,以优化内存访问。
  /AFFINITY <hex affinity mask> 设置进程的处理器亲和性掩码,指定程序在哪些处理器上运行,掩码值为十六进制。
等待与启动控制 /WAIT 启动应用程序并等待其完成后返回命令提示符。
  `/MACHINE <x86 amd64
命令执行与文件关联 command/program 启动的程序或命令。如果是内部命令或批处理文件,将使用 /K 开关执行。否则运行指定的应用程序或命令。
  parameters 传递给程序的命令行参数。
  non-executable files 启动非可执行文件时通过文件关联启动,例如 .DOC 文件会启动与其关联的应用程序(如 Word)。

说明

  1. 窗口配置类

    • 控制启动程序时窗口的显示状态(最小化、最大化等)。
    • /SEPARATE 和 /SHARED 用于 16 位程序,但 64 位平台不支持
    • ["title"] 用于设置命令提示符窗口的标题。
  2. 优先级设置类

    • /LOW/NORMAL/HIGH/REALTIME 等选项控制程序启动时的优先级。优先级决定操作系统为程序分配资源的多少,/REALTIME 优先级会使程序得到几乎所有的系统资源。
  3. 处理器亲和性类

    • /NODE 和 /AFFINITY 用于在 NUMA(非一致性内存架构)系统上优化程序的内存和 CPU 亲和性,使得程序能够在特定的 NUMA 节点上运行,从而提高效率和降低延迟。特别是当进程间有频繁的内存共享时,选择合适的 NUMA 节点和处理器可以显著提升性能。
  4. 等待与启动控制

    • /WAIT 使 START 命令等待被启动的程序执行完毕再返回控制台。
    • /MACHINE 指定了程序运行的架构类型(如 x86amd64 等),适用于有多种架构的环境。
  5. 命令执行与文件关联

    • 如果启动的是非可执行文件(如 .DOC 文件),则会根据文件的关联类型启动对应的应用程序。
    • 使用 command/program 启动指定程序时,可以传递参数。
    • 如果第一个令牌是 "CMD",则会根据 COMSPEC 环境变量确定 CMD.EXE 的路径,避免当前目录中的 CMD.EXE 被意外调用。

示例

  • 启动程序并最小化

    cmdCopy Code
    start /MIN myprogram.exe
  • 设置程序为高优先级并运行

    cmdCopy Code
    start /HIGH myprogram.exe
  • 在指定 NUMA 节点上运行两个进程,并设置处理器亲和性

    cmdCopy Code
    start /NODE 1 /AFFINITY 0x3 application1.exe
    start /NODE 1 /AFFINITY 0xc application2.exe
  • 启动程序并等待其完成

    cmdCopy Code
    start /WAIT myprogram.exe
  • 通过文件关联启动 Word 文档

    cmdCopy Code
    start myfile.doc

通过这种分类表格和详细说明,您可以更加清晰地理解 START 命令的各项功能,并能够在实际操作中灵活运用这些参数。


START 命令在不同版本的 Windows 系统中有些许差异,尤其是在 Windows 7、Windows 8、Windows 10、Windows 11 等操作系统中。以下是 START 命令在不同版本 Windows 中的一些常见差异,表格化呈现。

START 命令 版本差异表

功能/版本 Windows XP Windows Vista / 7 Windows 8 / 8.1 Windows 10 / 11
基本用法 支持基本用法 支持基本用法 支持基本用法 支持基本用法
/MIN (最小化窗口) 支持 支持 支持 支持
/MAX (最大化窗口) 支持 支持 支持 支持
/SEPARATE (16 位程序) 支持 支持 支持 支持(仅限 32 位系统)
/SHARED (16 位程序共享内存) 支持 支持 支持 支持(仅限 32 位系统)
/WAIT (等待程序完成) 支持 支持 支持 支持
/LOW / NORMAL / HIGH (优先级) 支持 支持 支持 支持
/REALTIME (实时优先级) 不支持 支持 支持 支持
/ABOVENORMAL (高于正常优先级) 不支持 支持 支持 支持
/BELOWNORMAL (低于正常优先级) 不支持 支持 支持 支持
/NODE (NUMA 节点) 不支持 不支持 支持 支持
/AFFINITY (处理器亲和性) 不支持 支持 支持 支持
程序路径 支持相对路径和绝对路径 支持相对路径和绝对路径 支持相对路径和绝对路径 支持相对路径和绝对路径
/MACHINE <架构> 不支持 不支持 支持 支持
执行非可执行文件 支持通过文件关联 支持通过文件关联 支持通过文件关联 支持通过文件关联
/K (保持命令行窗口) 支持 支持 支持 支持
CMD 启动时的默认行为 默认为 cmd.exe 默认为 cmd.exe 默认为 cmd.exe 默认为 cmd.exe
控制台窗口标题 支持 ["title"] 支持 ["title"] 支持 ["title"] 支持 ["title"]

主要差异概述

  1. /SEPARATE 和 /SHARED

    • 这两个选项支持 16 位程序运行,但在 64 位版本的 Windows 中不被支持。如果你使用的是 64 位操作系统,它们无法运行在 64 位 Windows 上。
  2. /REALTIME, /ABOVENORMAL, /BELOWNORMAL

    • 这些优先级控制选项在 Windows XP 中不支持。在 Windows Vista 及以后版本中得到支持,允许更细粒度的控制程序的优先级。
  3. /NODE 和 /AFFINITY

    • 这两个选项在 Windows XP 中不可用,但在 Windows 7 及以后版本的 Windows 中支持。它们用于控制程序在哪些 NUMA 节点或 CPU 核心上运行,以优化系统性能。
  4. /MACHINE <架构>

    • 在 Windows 8 及之后的版本中,/MACHINE 参数支持指定程序的架构,如 x86amd64arm 和 arm64,但 Windows XP 和 Windows Vista 不支持该选项。
  5. 程序路径

    • 在所有版本中,START 都支持通过相对路径和绝对路径启动程序,但 Windows XP 和更高版本之间的路径解析有所不同,特别是在支持的字符集方面。
  6. 命令窗口标题

    • 在所有 Windows 版本中,START 都支持设置命令提示符窗口的标题。

示例使用(适用于不同版本)

  1. 启动一个程序并设置优先级为高

    cmdCopy Code
    start /HIGH myprogram.exe
  2. 在特定 NUMA 节点上启动程序(仅支持 Windows 7 及以后版本):

    cmdCopy Code
    start /NODE 1 myprogram.exe
  3. 启动并等待程序完成

    cmdCopy Code
    start /WAIT myprogram.exe
  4. 指定机器架构启动程序(仅适用于 Windows 8 及以后版本):

    cmdCopy Code
    start /MACHINE amd64 myprogram.exe

通过这种表格和说明,可以帮助用户理解在不同 Windows 版本中 START 命令的支持差异,并选择适合自己环境的参数进行操作。


START:启动一个单独的窗口来运行指定的程序或命令。

Copy Code
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [/MACHINE <x86|amd64|arm|arm64>][command/program] [parameters]
  • "title"
    在窗口标题栏中显示的标题。

  • path
    启动的目录。

  • B
    启动应用程序时不创建新窗口。该应用程序的^C处理将被忽略。除非应用程序启用了^C处理,否则^Break是唯一能中断应用程序的方式。

  • I
    新的环境将是传递给 cmd.exe 的原始环境,而不是当前的环境。

  • MIN
    启动时将窗口最小化。

  • MAX
    启动时将窗口最大化。

  • SEPARATE
    在单独的内存空间中启动16位Windows程序。

  • SHARED
    在共享的内存空间中启动16位Windows程序。

  • LOW
    以空闲优先级类启动应用程序。

  • NORMAL
    以正常优先级类启动应用程序。

  • HIGH
    以高优先级类启动应用程序。

  • REALTIME
    以实时优先级类启动应用程序。

  • ABOVENORMAL
    以高于正常优先级类启动应用程序。

  • BELOWNORMAL
    以低于正常优先级类启动应用程序。

  • NODE
    指定首选的非统一内存架构(NUMA)节点,作为十进制整数。

  • AFFINITY
    指定处理器亲和性掩码,作为十六进制数。该进程将被限制在这些处理器上运行。

    /AFFINITY/NODE 组合使用时,亲和性掩码的解释有所不同。将亲和性掩码指定为NUMA节点的处理器掩码右移后从位0开始的值。该进程将被限制在指定的亲和性掩码和NUMA节点之间共有的处理器上运行。如果没有共享的处理器,则该进程将仅在指定的NUMA节点上运行。

  • WAIT
    启动应用程序并等待其终止。

  • MACHINE
    指定应用程序进程的机器架构。

  • command/program
    如果它是内部 cmd 命令或批处理文件,则会以 /K 开关运行命令处理器 cmd.exe。这意味着在命令执行完毕后,窗口将保持打开。

    如果它不是内部 cmd 命令或批处理文件,则它是一个程序,会作为窗口化应用程序或控制台应用程序运行。

  • parameters
    这些是传递给命令/程序的参数。

注意: SEPARATE 和 SHARED 选项不支持 64 位平台。

指定 /NODE 允许在 NUMA 系统上创建利用内存局部性的进程。例如,两个通过共享内存进行大量通信的进程可以被创建为共享相同的首选 NUMA 节点,以最小化内存延迟。当可能时,它们从相同的 NUMA 节点分配内存,并且可以在指定节点外的处理器上运行。

例如:

Copy Code
start /NODE 1 application1.exe
start /NODE 1 application2.exe

这两个进程可以进一步约束在相同 NUMA 节点内的特定处理器上运行。在下面的示例中,application1 运行在节点的低位两个处理器上,而 application2 运行在该节点的下两个处理器上。此示例假设指定的节点至少有四个逻辑处理器。请注意,可以将节点号更改为该计算机上任何有效的节点号,而无需更改亲和性掩码。

Copy Code
start /NODE 1 /AFFINITY 0x3 application1.exe
start /NODE 1 /AFFINITY 0xc application2.exe

如果启用了命令扩展,通过命令行或 START 命令调用外部命令时,会发生以下变化:

  • 通过文件关联直接调用不可执行文件,只需输入文件名即可作为命令执行。(例如,输入 WORD.DOC 会启动与 .DOC 文件扩展名关联的应用程序)。有关如何从命令脚本中创建这些关联,请参阅 ASSOCFTYPE 命令。

  • 当执行一个 32 位 GUI 应用程序时,CMD.EXE 不会等待应用程序终止后再返回命令提示符。如果在命令脚本中执行,则不会发生这种新行为。

  • 当执行一个命令行,第一个标记是字符串 "CMD " 且没有扩展名或路径限定符时,CMD 会被替换为 COMSPEC 变量的值。这防止从当前目录中调用 CMD.EXE

  • 当执行的命令行第一个标记没有扩展名时,CMD.EXE 会使用 PATHEXT 环境变量的值来确定要查找的扩展名及其顺序。PATHEXT 变量的默认值是:

    Copy Code
    .COM;.EXE;.BAT;.CMD

    注意,语法与 PATH 变量相同,使用分号分隔不同的元素。

  • 在搜索可执行文件时,如果没有任何扩展名匹配,CMD.EXE 会查看名称是否与目录名匹配。如果匹配,START 命令会在该路径上启动资源管理器。如果从命令行执行,这相当于执行 CD /D 切换到该路径。

 


CMD 中的 start 命令可以用于打开新的命令行窗口或启动应用程序。以下是一些常见的用法示例:

1. 启动一个新的命令行窗口

cmdCopy Code
start cmd

2. 启动指定的程序

例如,打开记事本:

cmdCopy Code
start notepad

3. 启动网页

打开一个网页,例如 Google:

cmdCopy Code
start http://www.google.com

4. 指定窗口标题

你可以为新窗口指定一个标题:

cmdCopy Code
start "My Command Prompt" cmd

5. 启动一个批处理文件

例如,启动一个名为 script.bat 的批处理文件:

cmdCopy Code
start script.bat

6. 启动程序并指定工作目录

在指定目录下启动程序:

cmdCopy Code
start "My Program" /d "C:\Path\To\Directory" myprogram.exe

7. 启动多个程序

同时启动多个程序:

cmdCopy Code
start notepad
start calc

8. 使用参数启动程序

如果你需要向程序传递参数:

cmdCopy Code
start "My Program" myprogram.exe arg1 arg2

9. 启动应用并将命令传递给它

启动 PowerShell 并执行命令:

cmdCopy Code
start powershell -Command "Get-Process"

10. 以管理员身份启动命令

虽然 start 本身不能直接以管理员身份启动,但可以通过以下方式:

cmdCopy Code
runas /user:Administrator "cmd /k start cmd"

 

start 命令是一个非常灵活的工具,能够帮助你管理命令行窗口和启动各种程序。

CMD start 命令的高级用法和技巧示例:

11. 启动程序并在后台运行

你可以使用 start 命令启动一个程序并在后台运行(不过这种方法有时依赖于具体的程序实现):

cmdCopy Code
start /B notepad

12. 使用 start 打开特定文件类型

你可以使用 start 打开特定类型的文件。例如,打开一个 .txt 文件:

cmdCopy Code
start example.txt

13. 启动 Windows 资源管理器

打开某个文件夹:

cmdCopy Code
start explorer "C:\Path\To\Folder"

14. 使用 start 运行系统工具

启动系统工具,比如设备管理器:

cmdCopy Code
start devmgmt.msc

15. 指定运行的优先级

虽然 start 命令本身不直接支持优先级设置,但你可以使用 start 结合 cmd/min/max/low 等选项:

cmdCopy Code
start /min notepad

16. 启动程序并指定 CPU 优先级

使用 start 命令结合 cmdstart 指令设置进程优先级:

cmdCopy Code
start /high myprogram.exe

17. 启动应用程序并重定向输出

将程序的输出重定向到文件:

cmdCopy Code
start cmd /c "myprogram.exe > output.txt"

18. 使用 timeout 延时启动

在启动一个程序之前添加延时:

cmdCopy Code
timeout /t 5 && start notepad

19. 使用 start 执行 PowerShell 脚本

启动 PowerShell 脚本:

cmdCopy Code
start powershell -File "C:\Path\To\Script.ps1"

20. 启动特定的应用程序并使用参数

打开特定的应用程序并传递参数,例如打开 Chrome 并访问一个网址:

cmdCopy Code
start chrome "http://www.example.com"

21. 使用环境变量

start 命令中使用环境变量:

cmdCopy Code
start %windir%\notepad.exe

22. 用 tasklist 和 taskkill 结合 start

查看运行中的进程,并选择性地结束某个进程后启动新的进程:

cmdCopy Code
taskkill /IM myprogram.exe /F && start myprogram.exe

 

start 命令是一个非常强大的工具,可以用于多种场景,包括启动应用程序、打开文件、管理进程等。

CMD start 命令的高级技巧和用法:

23. 使用 start 启动特定版本的程序

如果你有多个版本的某个程序,可以通过完整路径指定:

cmdCopy Code
start "My App" "C:\Path\To\Version2\myapp.exe"

24. 设置窗口大小

使用 start 命令时,你可以控制窗口的初始大小和位置,但这通常需要额外的工具或批处理脚本。

25. 使用 start 结合批处理逻辑

在批处理文件中,可以根据条件使用 start 命令来控制程序的启动:

Copy Code
@echo off
if exist "C:\Path\To\MyApp.exe" (
    start "My App" "C:\Path\To\MyApp.exe"
) else (
    echo MyApp not found.
)

26. 启动应用程序并设置其工作目录

在启动程序时,你可以指定工作目录,以便程序在正确的上下文中运行:

cmdCopy Code
start /d "C:\Path\To\Directory" myprogram.exe

27. 使用 /WAIT 参数

如果你希望在启动应用程序后等待它完成执行,可以使用 /WAIT 参数:

cmdCopy Code
start /WAIT myprogram.exe

28. 使用 start 结合 cmd 和管道

你可以结合管道使用 cmdstart 命令来处理输出或错误:

cmdCopy Code
start cmd /c "myprogram.exe | findstr 'error'"

29. 启动脚本并传递参数

启动批处理或脚本并传递参数:

cmdCopy Code
start myscript.bat arg1 arg2

30. 启动多个窗口并指定不同参数

同时打开多个窗口,并为每个窗口传递不同的参数:

cmdCopy Code
start "Window 1" myprogram.exe param1
start "Window 2" myprogram.exe param2

31. 检查程序是否运行并启动

在启动程序之前检查它是否已经在运行:

Copy Code
tasklist | find /I "myprogram.exe" >nul
if errorlevel 1 (
    start myprogram.exe
) else (
    echo MyProgram is already running.
)

32. 在任务计划程序中使用 start

你可以使用 start 命令创建或运行计划任务:

cmdCopy Code
start schtasks /create /tn "My Task" /tr "C:\Path\To\myprogram.exe" /sc daily /st 10:00

33. 启动具有特定用户权限的应用程序

使用 runas 命令结合 start 启动应用程序:

cmdCopy Code
runas /user:Username "start myprogram.exe"

34. 启动应用程序并使用不同的文件编码

如果你的程序支持编码选项,可以在启动时指定:

cmdCopy Code
start myprogram.exe --encoding UTF-8

35. 创建快捷方式的脚本

使用 start 命令创建程序快捷方式的批处理脚本:

Copy Code
@echo off
set shortcutPath="%USERPROFILE%\Desktop\MyApp.lnk"
set targetPath="C:\Path\To\myapp.exe"

echo [InternetShortcut] > %shortcutPath%
echo URL=%targetPath% >> %shortcutPath%

 

通过使用 start 命令,你可以非常灵活地管理应用程序的启动、配置和控制。

CMD start 命令的更多技巧和用法:

36. 启动多个实例的应用程序

如果你想启动同一应用程序的多个实例,可以使用 /B 参数:

cmdCopy Code
start /B myprogram.exe

37. 使用环境变量

start 命令中,可以使用环境变量以便动态指定路径或参数:

cmdCopy Code
set MYAPP="C:\Path\To\MyApp.exe"
start %MYAPP%

38. 指定优先级

虽然 start 命令本身不直接支持设置优先级,但你可以结合 startwmic 命令来调整进程优先级:

cmdCopy Code
start myprogram.exe
wmic process where name="myprogram.exe" call setpriority "high priority"

39. 在后台运行应用程序

你可以通过 start 启动程序而不打开新的窗口:

cmdCopy Code
start /B myprogram.exe

40. 启动网页

通过 start 打开网页:

cmdCopy Code
start https://www.example.com

41. 在指定时间后启动应用程序

使用 timeout 命令延迟启动:

cmdCopy Code
timeout /t 10
start myprogram.exe

42. 通过网络路径启动程序

你可以从网络路径启动应用程序:

cmdCopy Code
start "\\NetworkPath\SharedFolder\myprogram.exe"

43. 使用 start 来打开文件

你可以直接使用 start 命令打开文件(例如文档、图片等):

cmdCopy Code
start "My Document" "C:\Path\To\mydocument.docx"

44. 定时启动程序

如果需要定时启动程序,可以结合 schtasks 命令:

cmdCopy Code
schtasks /create /tn "My Scheduled Task" /tr "C:\Path\To\myprogram.exe" /sc once /st 12:00

45. 执行 PowerShell 脚本

你可以通过 start 命令启动 PowerShell 脚本:

cmdCopy Code
start powershell -File "C:\Path\To\myscript.ps1"

46. 启动带有特定窗口标题的程序

使用 start 命令时,可以指定窗口标题:

cmdCopy Code
start "My Custom Title" myprogram.exe

47. 使用 CMD 参数

如果需要向 CMD 传递参数,可以这样做:

cmdCopy Code
start cmd /k "echo Hello World"

48. 启动批处理文件并隐藏窗口

可以使用 startcmd 的组合隐藏窗口:

cmdCopy Code
start /B cmd /c myscript.bat

49. 创建带图标的快捷方式

如果需要创建具有特定图标的快捷方式,可以使用 VBScript:

vbscriptCopy Code
Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:\Path\To\Shortcut.lnk"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "C:\Path\To\myprogram.exe"
oLink.IconLocation = "C:\Path\To\icon.ico"
oLink.Save

50. 启动 Docker 容器

如果你使用 Docker,可以通过 start 命令启动容器:

cmdCopy Code
start docker run -d mycontainer

 

以上这些技巧展示了 CMD start 命令的强大和灵活性。无论是打开程序、文件,还是执行脚本,都能帮助你更高效地使用命令行。

关于 start 命令的组合使用技巧:

1. 与 cmd 结合

可以使用 start 启动新的命令窗口并运行命令:

cmdCopy Code
start cmd /k "dir"

2. 与 timeout 结合

延迟启动程序:

cmdCopy Code
timeout /t 5 && start myprogram.exe

3. 与 tasklist 结合

查看正在运行的程序,并根据需要启动:

cmdCopy Code
tasklist | find "myprogram.exe" || start myprogram.exe

4. 与 for 结合

批量启动多个文件:

cmdCopy Code
for %f in (*.exe) do start "%~nxf" "%f"

5. 与 set 结合

动态设置路径和参数:

cmdCopy Code
set MYAPP="C:\Path\To\MyApp.exe"
start %MYAPP% --arg1 value1

6. 与 powershell 结合

使用 PowerShell 脚本启动:

cmdCopy Code
start powershell -Command "& {Start-Process myprogram.exe}"

7. 与 schtasks 结合

创建定时任务并启动:

cmdCopy Code
schtasks /create /tn "MyTask" /tr "C:\Path\To\myprogram.exe" /sc once /st 09:00

8. 与 runas 结合

以不同用户身份启动程序:

cmdCopy Code
start runas /user:username "myprogram.exe"

这些组合技巧可以帮助你更高效地使用 start 命令,根据具体需求灵活运用。

关于 start 命令的组合使用技巧和示例:

9. 与 echo 结合

在启动程序前显示提示信息:

cmdCopy Code
echo Starting My Program... && start myprogram.exe

10. 启动后台进程并记录输出

将程序输出重定向到文件:

cmdCopy Code
start /B myprogram.exe > output.txt 2>&1

11. 使用批处理文件

在批处理文件中使用 start 启动多个程序:

Copy Code
@echo off
start myprogram1.exe
start myprogram2.exe

12. 结合 call 命令

在一个批处理文件中调用另一个批处理文件:

Copy Code
start call myscript.bat

13. 启动网页并使用特定浏览器

使用指定的浏览器打开网址:

cmdCopy Code
start chrome "https://www.example.com"

14. 启动文件夹

快速打开文件夹:

cmdCopy Code
start "" "C:\Path\To\Folder"

15. 通过 findstr 过滤进程

过滤并启动特定名称的程序:

cmdCopy Code
tasklist | findstr /I "myprogram" && start myprogram.exe

16. 结合 if 语句

条件启动程序:

Copy Code
if exist "myprogram.exe" start myprogram.exe

17. 启动带有参数的 Python 脚本

使用 Python 解释器启动脚本:

cmdCopy Code
start python "C:\Path\To\myscript.py" --option value

18. 使用 exit 结束脚本

在批处理文件中结束脚本并关闭窗口:

Copy Code
start myprogram.exe
exit

19. 启动应用程序并保持窗口打开

让命令窗口保持打开状态以查看输出:

cmdCopy Code
start cmd /k "myprogram.exe"

20. 启动指定文件的默认应用程序

打开指定文件类型的默认应用程序:

cmdCopy Code
start "C:\Path\To\mydocument.docx"

21. 使用变量传递参数

通过变量传递启动参数:

cmdCopy Code
set ARG1=value1
start myprogram.exe %ARG1%

22. 启动 FTP 客户端

如果需要连接到 FTP 服务器,可以使用:

cmdCopy Code
start ftp ftp://username:password@ftp.example.com

23. 启动一个脚本并隐藏窗口

在后台运行脚本,避免显示命令窗口:

cmdCopy Code
start /B cmd /c myscript.bat

24. 启动 Java 应用程序

使用 Java 运行一个 JAR 文件:

cmdCopy Code
start java -jar "C:\Path\To\myapp.jar"

25. 使用 setlocal 和 endlocal

在批处理文件中限制变量的作用域:

Copy Code
@echo off
setlocal
set MYVAR=Hello
start cmd /k "echo %MYVAR%"
endlocal

这些组合技巧能够帮助你在使用 start 命令时更加灵活和高效。

 


 

posted @ 2024-09-26 00:29  suv789  阅读(1898)  评论(0)    收藏  举报