Board logo

标题: [其他] 路径加上英文双引号有什么作用 [打印本页]

作者: 生命接触    时间: 2008-11-10 19:18     标题: 路径加上英文双引号有什么作用

本帖最后由 pcl_test 于 2016-11-8 16:40 编辑
  1. @echo off
  2. title 播放音乐
  3. ping 127.1 -n 1800 >nul
  4. start D:\desktop\"中文歌曲名".mp3
  5. ping 127.1 -n 25 >nul
  6. taskkill /f /im wmplayer.exe
  7. call %0
复制代码
在这里的  start D:\desktop\"中文歌曲名".mp3   为什么“中文歌曲名".mp3  里要用引号??不加引号提示找不到文件或错误的路径,就是不能播放!
而改成  start D:\desktop\中文歌曲名.wma   就不用加引号也能直接打开播放了!!就像有时可以,有时不可以!

然后我有事出去了一会,回来后start D:\desktop\中文歌曲名.mp3 不加引号也能打开播放了。
我很想知道这个引号是怎么一回事,到底应该什么时候加,什么时候不加~~     是因为文件关联的原因或是关于中文字符还是其它导致的??写这个BAT之前,都是用WMP关联所有音频格式的!


[ 本帖最后由 生命接触 于 2008-11-10 19:32 编辑 ]
作者: BBCC    时间: 2008-11-10 19:24

建议能加就加,这样能极大地避免了路径中有空格的错误.
作者: pusofalse    时间: 2008-11-10 19:44

2楼正解,问题不在于中文字符,而是要用""闭合含空格的路径。
start d:\program files\test.txt
以上错误。。。
start "d:\program files\test.txt"
出现cmd窗口,标题是d:\program files\test.txt,不是想要的结果。
start "" "d:\program files\test.txt"
OK。。。


更多解释请看start /?

[ 本帖最后由 pusofalse 于 2008-11-10 19:55 编辑 ]
作者: 生命接触    时间: 2008-11-10 19:50

我已经测试多次,wma格式时,加不加都能打开播放.
当换成MP3格式时就不行,不加引号就打不开..但换成英文名字却没此问题..

没任何操作的情况下,离开电脑一段时间.(20分钟左右) 回来却发现不加引号也没问题了!!立刻换2003EE试(第一次是在2003SE系统上),却又不存在引号问题,一切正常!!XP下也不行.

想知道这个引号在带有中文字符里怎么起作用的.资料说的答案不尽详细,还没能理解..才疏学浅,望不吝赐教!!
作者: namejm    时间: 2008-11-10 19:51

  对路径加引号,是为了兼容路径中含有的特殊字符,比如空格、&。在绝大部分场合,如果路径中有特殊字符出现,则必须用引号把路径括起来,如果没有特殊字符,不加引号也可以,加了引号也不会出错。但是,如果用 start 命令的话,就必须小心了,因为 start 对第一个引号内的内容会识别为窗口标题,所以,需要用 start "" "路径" 的格式,第一个引号对不能省略。
作者: 生命接触    时间: 2008-11-10 20:11

嗯 ,的确是这样..  

但是我的路径里并没有空格呀,也没特殊字符..并,在wma格式不管什么系统,总是可以的.
换成mp3以后就偶尔可以,偶尔不行.就像pusofalse版主说的,有CMD窗口和标题.打不开.
固然start "" "路径"可以,这也是因为路径里含有空格或特殊字符才需要.如果我把.mp3换成.exe那是否还需要start "" "路径"呢?
而且我的引号并不是加在start后面,是在中文字符里,何解??

[ 本帖最后由 生命接触 于 2008-11-10 20:14 编辑 ]
作者: pusofalse    时间: 2008-11-10 21:06     标题: 回复 6楼 的帖子

运行指定程序,用下面这句:
  1. start "" "程序路径"
复制代码
不管有无空格,是中文还是英文,都用""闭合,这是个非常好的习惯。前面的""必不可少。
作者: 生命接触    时间: 2008-11-11 22:14

谢谢!!!!!!!!!!!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2