菜鸟科技网

cmd命令start

start 命令是一个非常强大且常用的命令,它的核心功能是在新的窗口中启动指定的程序或命令

cmd命令start-图1
(图片来源网络,侵删)

基本语法和核心功能

start 命令的基本语法如下:

start ["title"] [/D path] [options] ["command" ["parameters"]]

让我们分解一下这个语法中的各个部分:

  1. ["title"] (可选)

    • 作用:为新打开的命令窗口指定一个标题。
    • 示例:start "我的计算器" calc 会打开一个标题为“我的计算器”的计算器窗口。
  2. /D path (可选)

    cmd命令start-图2
    (图片来源网络,侵删)
    • 作用:指定要启动的程序或命令的初始工作目录,如果路径中包含空格,必须用引号括起来。
    • 示例:start /D "C:\Program Files" notepad 会在 C:\Program Files 目录下打开记事本。
  3. options (可选)

    • 这是一系列开关,用于控制新窗口的行为,这是 start 命令最强大的部分。
    • /min:以最小化方式启动新窗口。
    • /max:以最大化方式启动新窗口。
    • /separate:在单独的内存空间中为 16 位程序启动 16 位 Windows 子系统。
    • /shared:在共享的内存空间中为 16 位程序启动 16 位 Windows 子系统。
    • /low:以低优先级类启动应用程序。
    • /normal:以普通优先级类启动应用程序(默认)。
    • /high:以高优先级类启动应用程序。
    • /realtime:以实时优先级类启动应用程序(慎用,可能影响系统响应)。
    • /wait:启动应用程序并等待它结束后,再继续执行下一个命令。
    • /b:以无窗口(后台)方式启动应用程序,命令会立即返回,不等待程序结束,这对于批处理脚本自动化非常有用。
  4. ["command"] ["parameters"] (必需)

    • command: 要启动的程序、批处理文件或可执行文件的名称,如果是内部命令(如 dir, cd),需要使用 /c 开关。
    • parameters: 传递给该程序的任何参数或开关。
    • command 是一个带有空格的路径或名称,必须用引号括起来

常用和实用的示例

打开常规程序

这是最常见的用法,直接启动一个程序。

# 打开记事本
start notepad
# 打开计算器
start calc
# 打开画图
start mspaint
# 打开资源管理器
start explorer

打开特定文件夹

使用 explorer.exe 可以打开文件资源管理器,并导航到指定目录。

cmd命令start-图3
(图片来源网络,侵删)
# 打开 C 盘根目录
start explorer C:\
# 打开当前用户的下载文件夹
start explorer %USERPROFILE%\Downloads
# 打开一个特定路径的文件夹
start explorer "D:\我的项目\重要资料"

打开网页

start 命令可以轻松调用默认浏览器打开指定的网址。

# 打开百度首页
start https://www.baidu.com
# 打开 Google 搜索 "Windows 命令"
start "https://www.google.com/search?q=Windows 命令"

使用特殊选项

  • /min 最小化启动

    # 最小化方式打开记事本
    start /min notepad
  • /max 最大化启动

    # 最大化方式打开计算器
    start /max calc
  • /wait 等待程序结束: 这个在批处理脚本中非常有用,你想先打开一个程序,等它关闭后再执行下一个操作。

    @echo off
    echo 正在打开记事本,请关闭它...
    start /wait notepad
    echo 记事本已关闭,继续执行下一个命令。
    pause
  • /b 后台静默启动: 适用于需要启动一个程序但不希望看到其窗口,并且不希望脚本等待它的情况。

    # 后台启动一个长时间运行的程序,比如一个服务器
    start /b my_server_app.exe
    # 窗口会立即返回,可以继续执行其他命令
    echo 服务器已在后台启动。

执行 CMD 内部命令

默认情况下,start 不能直接运行 dir, cd 等 CMD 内部命令,因为它们会在当前窗口执行,你需要使用 /k/c 开关。

  • /k:执行命令后保持新窗口打开。
  • /c:执行命令后关闭新窗口。
# 打开一个新窗口,列出 C 盘根目录的内容,然后保持窗口打开
start /k dir C:\
# 打开一个新窗口,列出 C 盘根目录的内容,然后自动关闭窗口
start /c dir C:\

指定工作目录

当你要运行一个程序,且它依赖当前工作目录下的某些文件时,这个功能就很有用。

假设你有一个批处理文件 run.batD:\MyProject 目录下,你想从这个目录运行它:

start /D "D:\MyProject" run.bat

高级技巧:通过 start 查找程序路径

有时候你只知道程序的名称(如 chrome),但不确定它的完整安装路径,可以利用 start 命令的搜索机制来找到它。

# 尝试启动 Chrome,如果找不到,start 会报错
# 但我们可以利用这个特性来定位
start chrome

更可靠的方法是结合 where 命令,where 命令专门用于在系统的 PATH 环境变量中查找程序。

# 查找 chrome.exe 的完整路径
where chrome
# 输出可能是:
# C:\Program Files\Google\Chrome\Application\chrome.exe
# 然后你就可以用这个完整路径来启动
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe"

常见问题与注意事项

  1. 路径和名称中的空格

    • 这是最常见的错误! 如果你的程序路径或名称包含空格,必须用双引号 将整个路径括起来
    • 错误示例start C:\Program Files\notepad.exe
    • 正确示例start "C:\Program Files\notepad.exe"
    • 特别注意:如果你同时使用了 titletitle 必须是第一个参数,并且它和路径都需要引号,为了避免混淆,一个常见的技巧是给 title 一个空字符串:start "" "C:\Program Files\notepad.exe",这里的第一个 是空的标题,第二个 括住了带空格的路径。
  2. start 命令本身是异步的

    • 默认情况下,start 启动程序后,会立即返回,不会等待程序关闭,批处理脚本的下一行会紧接着执行,只有使用 /wait 开关才会等待。
  3. call 命令的区别

    • call 命令用于在同一个窗口中调用另一个批处理文件,执行完毕后会返回到当前脚本继续执行。
    • start 命令用于在新的窗口中启动程序或批处理文件,脚本会立即继续执行,不等待新窗口的程序。
功能 命令示例 说明
基本启动 start notepad 在新窗口打开记事本
打开网页 start https://www.google.com 用默认浏览器打开网页
打开文件夹 start explorer C:\Users 打开指定文件夹
最小化启动 start /min calc 最小化打开计算器
等待程序结束 start /wait notepad 打开记事本并等待其关闭
后台静默启动 start /b my_app.exe 无窗口启动程序,不等待
执行内部命令 start /k dir C:\ 打开新窗口执行 dir 并保持
指定工作目录 start /D "D:\MyApp" app.exe 从指定目录启动程序

掌握 start 命令,能让你的命令行操作和批处理脚本编写能力提升一个档次,是实现 Windows 自动化任务的利器。

分享:
扫描分享到社交APP
上一篇
下一篇