start 命令是一个非常灵活的工具,能够帮助你管理命令行窗口和启动各种程序。这些组合技巧可以帮助你更高效地使用 start 命令,根据具体需求灵活运用。这些组合技巧能够帮助你在使用 start 命令时更加灵活和高效。
为了更好地理解和分类 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(非一致性内存架构)系统中的执行效率,控制程序在哪些处理器上运行。
- 其他功能:包括等待程序完成、指定机器架构等附加功能。
- 命令或程序类:用于指定要启动的命令或应用程序,并传递参数。
示例:
-
启动一个程序并最小化窗口:
cmdCopy Codestart /MIN myprogram.exe -
启动程序并设置其优先级为高:
cmdCopy Codestart /HIGH myprogram.exe -
启动程序并指定其 NUMA 节点和亲和性:
cmdCopy Codestart /NODE 1 /AFFINITY 0x3 myprogram.exe -
启动程序并在等待其完成后返回:
cmdCopy Codestart /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) 制作。(
/NODE 1) -
然后,你在西餐区内部,再指定具体由哪几位厨师来做。(
/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 想象成一个两步点餐法:
-
选区域 (
/NODE):先决定在“中餐区”还是“西餐区”做菜。 -
选厨师 (
/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)。 |
说明
-
窗口配置类:
- 控制启动程序时窗口的显示状态(最小化、最大化等)。
/SEPARATE和/SHARED用于 16 位程序,但 64 位平台不支持。["title"]用于设置命令提示符窗口的标题。
-
优先级设置类:
/LOW、/NORMAL、/HIGH、/REALTIME等选项控制程序启动时的优先级。优先级决定操作系统为程序分配资源的多少,/REALTIME优先级会使程序得到几乎所有的系统资源。
-
处理器亲和性类:
/NODE和/AFFINITY用于在 NUMA(非一致性内存架构)系统上优化程序的内存和 CPU 亲和性,使得程序能够在特定的 NUMA 节点上运行,从而提高效率和降低延迟。特别是当进程间有频繁的内存共享时,选择合适的 NUMA 节点和处理器可以显著提升性能。
-
等待与启动控制:
/WAIT使START命令等待被启动的程序执行完毕再返回控制台。/MACHINE指定了程序运行的架构类型(如x86、amd64等),适用于有多种架构的环境。
-
命令执行与文件关联:
- 如果启动的是非可执行文件(如
.DOC文件),则会根据文件的关联类型启动对应的应用程序。 - 使用
command/program启动指定程序时,可以传递参数。 - 如果第一个令牌是
"CMD",则会根据COMSPEC环境变量确定 CMD.EXE 的路径,避免当前目录中的 CMD.EXE 被意外调用。
- 如果启动的是非可执行文件(如
示例
-
启动程序并最小化:
cmdCopy Codestart /MIN myprogram.exe -
设置程序为高优先级并运行:
cmdCopy Codestart /HIGH myprogram.exe -
在指定 NUMA 节点上运行两个进程,并设置处理器亲和性:
cmdCopy Codestart /NODE 1 /AFFINITY 0x3 application1.exe start /NODE 1 /AFFINITY 0xc application2.exe -
启动程序并等待其完成:
cmdCopy Codestart /WAIT myprogram.exe -
通过文件关联启动 Word 文档:
cmdCopy Codestart 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"] |
主要差异概述
-
/SEPARATE 和 /SHARED:
- 这两个选项支持 16 位程序运行,但在 64 位版本的 Windows 中不被支持。如果你使用的是 64 位操作系统,它们无法运行在 64 位 Windows 上。
-
/REALTIME, /ABOVENORMAL, /BELOWNORMAL:
- 这些优先级控制选项在 Windows XP 中不支持。在 Windows Vista 及以后版本中得到支持,允许更细粒度的控制程序的优先级。
-
/NODE 和 /AFFINITY:
- 这两个选项在 Windows XP 中不可用,但在 Windows 7 及以后版本的 Windows 中支持。它们用于控制程序在哪些 NUMA 节点或 CPU 核心上运行,以优化系统性能。
-
/MACHINE <架构>:
- 在 Windows 8 及之后的版本中,
/MACHINE参数支持指定程序的架构,如x86、amd64、arm和arm64,但 Windows XP 和 Windows Vista 不支持该选项。
- 在 Windows 8 及之后的版本中,
-
程序路径:
- 在所有版本中,
START都支持通过相对路径和绝对路径启动程序,但 Windows XP 和更高版本之间的路径解析有所不同,特别是在支持的字符集方面。
- 在所有版本中,
-
命令窗口标题:
- 在所有 Windows 版本中,
START都支持设置命令提示符窗口的标题。
- 在所有 Windows 版本中,
示例使用(适用于不同版本)
-
启动一个程序并设置优先级为高:
cmdCopy Codestart /HIGH myprogram.exe -
在特定 NUMA 节点上启动程序(仅支持 Windows 7 及以后版本):
cmdCopy Codestart /NODE 1 myprogram.exe -
启动并等待程序完成:
cmdCopy Codestart /WAIT myprogram.exe -
指定机器架构启动程序(仅适用于 Windows 8 及以后版本):
cmdCopy Codestart /MACHINE amd64 myprogram.exe
通过这种表格和说明,可以帮助用户理解在不同 Windows 版本中 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]
[/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 节点分配内存,并且可以在指定节点外的处理器上运行。
例如:
start /NODE 1 application1.exe
start /NODE 1 application2.exe
这两个进程可以进一步约束在相同 NUMA 节点内的特定处理器上运行。在下面的示例中,application1 运行在节点的低位两个处理器上,而 application2 运行在该节点的下两个处理器上。此示例假设指定的节点至少有四个逻辑处理器。请注意,可以将节点号更改为该计算机上任何有效的节点号,而无需更改亲和性掩码。
start /NODE 1 /AFFINITY 0x3 application1.exe
start /NODE 1 /AFFINITY 0xc application2.exe
如果启用了命令扩展,通过命令行或 START 命令调用外部命令时,会发生以下变化:
-
通过文件关联直接调用不可执行文件,只需输入文件名即可作为命令执行。(例如,输入
WORD.DOC会启动与.DOC文件扩展名关联的应用程序)。有关如何从命令脚本中创建这些关联,请参阅ASSOC和FTYPE命令。 -
当执行一个 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. 启动一个新的命令行窗口
start cmd
2. 启动指定的程序
例如,打开记事本:
start notepad
3. 启动网页
打开一个网页,例如 Google:
start http://www.google.com
4. 指定窗口标题
你可以为新窗口指定一个标题:
start "My Command Prompt" cmd
5. 启动一个批处理文件
例如,启动一个名为 script.bat 的批处理文件:
start script.bat
6. 启动程序并指定工作目录
在指定目录下启动程序:
start "My Program" /d "C:\Path\To\Directory" myprogram.exe
7. 启动多个程序
同时启动多个程序:
start notepad
start calc
8. 使用参数启动程序
如果你需要向程序传递参数:
start "My Program" myprogram.exe arg1 arg2
9. 启动应用并将命令传递给它
启动 PowerShell 并执行命令:
start powershell -Command "Get-Process"
10. 以管理员身份启动命令
虽然 start 本身不能直接以管理员身份启动,但可以通过以下方式:
runas /user:Administrator "cmd /k start cmd"
start 命令是一个非常灵活的工具,能够帮助你管理命令行窗口和启动各种程序。
CMD start 命令的高级用法和技巧示例:
11. 启动程序并在后台运行
你可以使用 start 命令启动一个程序并在后台运行(不过这种方法有时依赖于具体的程序实现):
start /B notepad
12. 使用 start 打开特定文件类型
你可以使用 start 打开特定类型的文件。例如,打开一个 .txt 文件:
start example.txt
13. 启动 Windows 资源管理器
打开某个文件夹:
start explorer "C:\Path\To\Folder"
14. 使用 start 运行系统工具
启动系统工具,比如设备管理器:
start devmgmt.msc
15. 指定运行的优先级
虽然 start 命令本身不直接支持优先级设置,但你可以使用 start 结合 cmd 的 /min、/max、/low 等选项:
start /min notepad
16. 启动程序并指定 CPU 优先级
使用 start 命令结合 cmd 的 start 指令设置进程优先级:
start /high myprogram.exe
17. 启动应用程序并重定向输出
将程序的输出重定向到文件:
start cmd /c "myprogram.exe > output.txt"
18. 使用 timeout 延时启动
在启动一个程序之前添加延时:
timeout /t 5 && start notepad
19. 使用 start 执行 PowerShell 脚本
启动 PowerShell 脚本:
start powershell -File "C:\Path\To\Script.ps1"
20. 启动特定的应用程序并使用参数
打开特定的应用程序并传递参数,例如打开 Chrome 并访问一个网址:
start chrome "http://www.example.com"
21. 使用环境变量
在 start 命令中使用环境变量:
start %windir%\notepad.exe
22. 用 tasklist 和 taskkill 结合 start
查看运行中的进程,并选择性地结束某个进程后启动新的进程:
taskkill /IM myprogram.exe /F && start myprogram.exe
start 命令是一个非常强大的工具,可以用于多种场景,包括启动应用程序、打开文件、管理进程等。
CMD start 命令的高级技巧和用法:
23. 使用 start 启动特定版本的程序
如果你有多个版本的某个程序,可以通过完整路径指定:
start "My App" "C:\Path\To\Version2\myapp.exe"
24. 设置窗口大小
使用 start 命令时,你可以控制窗口的初始大小和位置,但这通常需要额外的工具或批处理脚本。
25. 使用 start 结合批处理逻辑
在批处理文件中,可以根据条件使用 start 命令来控制程序的启动:
@echo off
if exist "C:\Path\To\MyApp.exe" (
start "My App" "C:\Path\To\MyApp.exe"
) else (
echo MyApp not found.
)
26. 启动应用程序并设置其工作目录
在启动程序时,你可以指定工作目录,以便程序在正确的上下文中运行:
start /d "C:\Path\To\Directory" myprogram.exe
27. 使用 /WAIT 参数
如果你希望在启动应用程序后等待它完成执行,可以使用 /WAIT 参数:
start /WAIT myprogram.exe
28. 使用 start 结合 cmd 和管道
你可以结合管道使用 cmd 和 start 命令来处理输出或错误:
start cmd /c "myprogram.exe | findstr 'error'"
29. 启动脚本并传递参数
启动批处理或脚本并传递参数:
start myscript.bat arg1 arg2
30. 启动多个窗口并指定不同参数
同时打开多个窗口,并为每个窗口传递不同的参数:
start "Window 1" myprogram.exe param1
start "Window 2" myprogram.exe param2
31. 检查程序是否运行并启动
在启动程序之前检查它是否已经在运行:
tasklist | find /I "myprogram.exe" >nul
if errorlevel 1 (
start myprogram.exe
) else (
echo MyProgram is already running.
)
32. 在任务计划程序中使用 start
你可以使用 start 命令创建或运行计划任务:
start schtasks /create /tn "My Task" /tr "C:\Path\To\myprogram.exe" /sc daily /st 10:00
33. 启动具有特定用户权限的应用程序
使用 runas 命令结合 start 启动应用程序:
runas /user:Username "start myprogram.exe"
34. 启动应用程序并使用不同的文件编码
如果你的程序支持编码选项,可以在启动时指定:
start myprogram.exe --encoding UTF-8
35. 创建快捷方式的脚本
使用 start 命令创建程序快捷方式的批处理脚本:
@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 参数:
start /B myprogram.exe
37. 使用环境变量
在 start 命令中,可以使用环境变量以便动态指定路径或参数:
set MYAPP="C:\Path\To\MyApp.exe"
start %MYAPP%
38. 指定优先级
虽然 start 命令本身不直接支持设置优先级,但你可以结合 start 和 wmic 命令来调整进程优先级:
start myprogram.exe
wmic process where name="myprogram.exe" call setpriority "high priority"
39. 在后台运行应用程序
你可以通过 start 启动程序而不打开新的窗口:
start /B myprogram.exe
40. 启动网页
通过 start 打开网页:
start https://www.example.com
41. 在指定时间后启动应用程序
使用 timeout 命令延迟启动:
timeout /t 10
start myprogram.exe
42. 通过网络路径启动程序
你可以从网络路径启动应用程序:
start "\\NetworkPath\SharedFolder\myprogram.exe"
43. 使用 start 来打开文件
你可以直接使用 start 命令打开文件(例如文档、图片等):
start "My Document" "C:\Path\To\mydocument.docx"
44. 定时启动程序
如果需要定时启动程序,可以结合 schtasks 命令:
schtasks /create /tn "My Scheduled Task" /tr "C:\Path\To\myprogram.exe" /sc once /st 12:00
45. 执行 PowerShell 脚本
你可以通过 start 命令启动 PowerShell 脚本:
start powershell -File "C:\Path\To\myscript.ps1"
46. 启动带有特定窗口标题的程序
使用 start 命令时,可以指定窗口标题:
start "My Custom Title" myprogram.exe
47. 使用 CMD 参数
如果需要向 CMD 传递参数,可以这样做:
start cmd /k "echo Hello World"
48. 启动批处理文件并隐藏窗口
可以使用 start 和 cmd 的组合隐藏窗口:
start /B cmd /c myscript.bat
49. 创建带图标的快捷方式
如果需要创建具有特定图标的快捷方式,可以使用 VBScript:
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 命令启动容器:
start docker run -d mycontainer
以上这些技巧展示了 CMD start 命令的强大和灵活性。无论是打开程序、文件,还是执行脚本,都能帮助你更高效地使用命令行。
关于 start 命令的组合使用技巧:
1. 与 cmd 结合
可以使用 start 启动新的命令窗口并运行命令:
start cmd /k "dir"
2. 与 timeout 结合
延迟启动程序:
timeout /t 5 && start myprogram.exe
3. 与 tasklist 结合
查看正在运行的程序,并根据需要启动:
tasklist | find "myprogram.exe" || start myprogram.exe
4. 与 for 结合
批量启动多个文件:
for %f in (*.exe) do start "%~nxf" "%f"
5. 与 set 结合
动态设置路径和参数:
set MYAPP="C:\Path\To\MyApp.exe"
start %MYAPP% --arg1 value1
6. 与 powershell 结合
使用 PowerShell 脚本启动:
start powershell -Command "& {Start-Process myprogram.exe}"
7. 与 schtasks 结合
创建定时任务并启动:
schtasks /create /tn "MyTask" /tr "C:\Path\To\myprogram.exe" /sc once /st 09:00
8. 与 runas 结合
以不同用户身份启动程序:
start runas /user:username "myprogram.exe"
这些组合技巧可以帮助你更高效地使用 start 命令,根据具体需求灵活运用。
关于 start 命令的组合使用技巧和示例:
9. 与 echo 结合
在启动程序前显示提示信息:
echo Starting My Program... && start myprogram.exe
10. 启动后台进程并记录输出
将程序输出重定向到文件:
start /B myprogram.exe > output.txt 2>&1
11. 使用批处理文件
在批处理文件中使用 start 启动多个程序:
@echo off
start myprogram1.exe
start myprogram2.exe
12. 结合 call 命令
在一个批处理文件中调用另一个批处理文件:
start call myscript.bat
13. 启动网页并使用特定浏览器
使用指定的浏览器打开网址:
start chrome "https://www.example.com"
14. 启动文件夹
快速打开文件夹:
start "" "C:\Path\To\Folder"
15. 通过 findstr 过滤进程
过滤并启动特定名称的程序:
tasklist | findstr /I "myprogram" && start myprogram.exe
16. 结合 if 语句
条件启动程序:
if exist "myprogram.exe" start myprogram.exe
17. 启动带有参数的 Python 脚本
使用 Python 解释器启动脚本:
start python "C:\Path\To\myscript.py" --option value
18. 使用 exit 结束脚本
在批处理文件中结束脚本并关闭窗口:
start myprogram.exe
exit
19. 启动应用程序并保持窗口打开
让命令窗口保持打开状态以查看输出:
start cmd /k "myprogram.exe"
20. 启动指定文件的默认应用程序
打开指定文件类型的默认应用程序:
start "C:\Path\To\mydocument.docx"
21. 使用变量传递参数
通过变量传递启动参数:
set ARG1=value1
start myprogram.exe %ARG1%
22. 启动 FTP 客户端
如果需要连接到 FTP 服务器,可以使用:
start ftp ftp://username:password@ftp.example.com
23. 启动一个脚本并隐藏窗口
在后台运行脚本,避免显示命令窗口:
start /B cmd /c myscript.bat
24. 启动 Java 应用程序
使用 Java 运行一个 JAR 文件:
start java -jar "C:\Path\To\myapp.jar"
25. 使用 setlocal 和 endlocal
在批处理文件中限制变量的作用域:
@echo off
setlocal
set MYVAR=Hello
start cmd /k "echo %MYVAR%"
endlocal
这些组合技巧能够帮助你在使用 start 命令时更加灵活和高效。

浙公网安备 33010602011771号