Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

转载:电脑知识收藏夹 >> Blog Archive >> Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

当使用Windows 中的命令行提示符执行这段指令时(测试Start命令执行带空格的路径的程序或文件问题),第一行Start会成功执行,跳出记事本程序,而第二行,会Start跳出一个新的命令提示符,标题上写着路径,但是不会执行任何命令,第三行Start命令行提示符会提示C:\Program文件不存在,提示无法执行。

复制代码
start c:\windows\notepad.exe
start "C:\Program Files\Internet Explorer\iexplore.exe"
start C:\Program Files\Internet Explorer\iexplore.exe
puase

通常在命令行提示符里遇到程序或者文件路径包含空格时,需要使用双引号将其括起来,或者使用8.3格式,但是这些使用起来都是不方便的。

于是上谷歌的雅虎百度一下有道......

最终找到原因,原来是双引号代表设置标题,导致我这出现的问题,解决办法很简单,在Start后增加2个双引号即可

复制代码
start "" "C:\Program Files\Internet Explorer\iexplore.exe"

通过这个简单的方式,就可以解决Start无法执行路径包含空格的问题了。最后附上这个命令自带的帮助

Microsoft Windows 版本 6.0.6002

版权所有 (C) 2006 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>start /?

启动另一个窗口运行指定的程序或命令。

START "title" /D path /I /MIN /MAX /SEPARATE \| /SHARED

/LOW \| /NORMAL \| /HIGH \| /REALTIME \| /ABOVENORMAL \| /BELOWNORMAL

/AFFINITY \\] \[/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 优先级类中启动应用程序

AFFINITY 新应用程序将具有指定的处理器关联掩码,用一

个十六进制数字表示。

WAIT 启动应用程序并等待它终止

command/program

如果它是内部 cmd 命令或批文件,那么该命令处

理器是使用 cmd.exe 的 /K 开关运行的。

这意味着运行该命令之后,该窗口将

仍然存在。

如果它不是内部 cmd 命令或批文件,那么

它就是一

个程序,并将作为一个窗口化应用程序或控制台应

用程序运行。

parameters 这些是传递给 command/program 的参数

注意: 在 64 位平台上不支持 SEPERATE 和 SHARED 选项。

如果命令扩展被启用,通过命令行或 START 命令的外部命令

调用会如下改变:

将文件名作为命令键入,非可执行文件可以通过文件关联调用。

(例如,WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。

关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和

FTYPE 命令。

执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用

程序终止就返回命令提示符。如果在命令脚本内执行,该新行为

则不会发生。

如果执行的命令行的第一个符号是不带扩展名或路径修饰符的

字符串 "CMD","CMD" 会被 COMSPEC 变量的数值所替换。这

防止从当前目录提取 CMD.EXE。

如果执行的命令行的第一个符号没有扩展名,CMD.EXE 会使用

PATHEXT 环境变量的数值来决定要以什么顺序寻找哪些扩展

名。PATHEXT 变量的默认值是:

.COM;.EXE;.BAT;.CMD

请注意,该语法跟 PATH 变量的一样,分号隔开不同的元素。

查找可执行文件时,如果没有相配的扩展名,看一看该名称是否

与目录名相配。如果确实如此,START 会在那个路径上调用

Explorer。如果从命令行执行,则等同于对那个路径作 CD /D。

相关推荐
java资料站1 小时前
二、Spring AI Alibaba · ChatModel
java·windows·spring
北冥you鱼2 小时前
Go 语言空接口(interface{})使用场景与最佳实践
开发语言·windows·golang
夏虫不可与之言冰4 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商
打工仔折腾 AI7 小时前
FaceFusion本地换脸实战:Windows整合包、模型选择与遮罩调参记录
人工智能·windows·后端·python·深度学习·性能优化·ai agent 实战
小蜗牛狂飙记9 小时前
Windows 双击 Jar 包无反应,不用写 bat 脚本!Jarfix 一键修复(以 Struts2 扫描工具为例)
windows·struts·jar
坐看风云变幻10 小时前
Betaflight 开发环境搭建保姆级教程(Ubuntu / Windows+WSL / Docker 三方案 + 官方网址大全)
windows·ubuntu·docker·无人机·飞控·betaflight
IT技术分享社区11 小时前
在 Windows 上跑未改动的 Linux 程序:微软 LiteBox v0.1 把这件事变简单了
linux·运维·windows·microsoft·开源
kakakahahahaha11 小时前
Win10/Win11 Windows Hello指纹不可用处理:WbioSrvc、传感器驱动与登录策略
windows·电脑·笔记本电脑·内容运营·软件需求
小黄人软件11 小时前
粘贴助手C++版 支持 Windows 7 / 10 / 11 不会出现缺少api-ms-win-core-path-11-1-0.dll
开发语言·c++·windows
Vex2une20 小时前
Windows 性能监视器发展史:从 PerfMon 计数器到 XPerf 深度诊断
windows·wpa·etw·性能监视器·perfmon·性能计数器·xperf