转:Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
2014-01-17 15:14
323 查看
转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html
当使用Windows 中的命令行提示符执行这段指令时(测试Start命令执行带空格的路径的程序或文件问题),第一行Start会成功执行,跳出记事本程序,而第二行,会 Start跳出一个新的命令提示符,标题上写着路径,但是不会执行任何命令,第三行Start命令行提示符会提示C:\Program文件不存在,提示无 法执行。
通常在命令行提示符里遇到程序或者文件路径包含空格时,需要使用双引号将其括起来,或者使用8.3格式,但是这些使用起来都是不方便的。
于是上谷歌的雅虎百度一下有道……
最终找到原因,原来是双引号代表设置标题,导致我这出现的问题,解决办法很简单,在Start后增加2个双引号即可
通过这个简单的方式,就可以解决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。
当使用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。
相关文章推荐
- Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
- [转]Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
- 关于在cmd命令里的路径包含空格的问题
- Java命令行执行参数中包含空格被截断的问题解决
- 关于在cmd命令里的路径包含空格的问题
- 关于cmd中执行命令路径包含空格的解决办法
- Ant 执行 exec cmd.exe 时路径包含空格的问题
- c# 路径空格---ProcessStartInfo参数问题
- windows环境下使用命令行执行java程序输出文件编码问题
- 命令行里执行php涉及到的路径问题
- windows下CMD命令行命令延迟执行(VBS)
- Linux下,解决把在特定路径下执行的命令转变成任何目录都可以执行的问题
- windows下命令行下输入python文件名直接执行的问题解决
- 解决redis在windows下使用start命令行调起时闪退的问题
- 有关“文件存储路径中有包含‘空格’的文件夹”程序会报错的问题
- RAC ASM磁盘扩容执行start_udev命令导致vip漂移问题分析及解决办法
- python的subprocess:子程序调用(调用执行其他命令);获取子程序脚本当前路径问题
- cmd命令里的路径包含空格 的解决方法
- python的subprocess:子程序调用(调用执行其他命令);获取子程序脚本当前路径问题
- java中的路径包含空格问题