无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3356|回复: 5
打印 上一主题 下一主题

非常重要的经验分享:判断有空格的目录必须注意的问题!!!!!

[复制链接]
跳转到指定楼层
1#
发表于 2008-5-2 00:11:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上这个论坛的人,都 会用到 如 IF EXIST [path] filename 或者 copy 命令 ,我就碰到过不能正确执行的时候,为什么呢?

我的命令如下:

if exist %cd%\test.bat copy %cd%\test.bat d:\
(%CD%为当前目录,实际使用时为文件所在目录)
我的批命令就是这个test.bat,可执行时,有时正确,有时不正确,例如,将test.bat复制到c:\program files目录下时,执行肯定不正确,
这个情况在XP或VISTA都一样,而在其他目录执行正确,为什么呢????

试试了几回,才发现,是c:\program files这个目录存在空格!!!,IF exist、copy等命令有时候对空格执行时会出现错误!!

正确的用法是:

if EXIST "%CD%"\test.bat copy "%CD%"\test.bat d:\

即有可能存在空格的文件全路径有理无理都用“”引起来就不会错,好象在什么地方见过这个提示的,

但是稍不注意,写批命令时刚好所在的目录没有空格,运行正常,当放到有空格的目录时,就会出错,还不知道错在什么地方!!!(我的命令就是放到program files后才发现的)


希望大家注意!
2#
发表于 2008-5-2 00:15:37 | 只看该作者
有空格目录或文件名必须用“ ”括起来,program files最好是用短目录名,PROG~1这种格式,在命令行下路径都可以用“ ” 来括起来。

[ 本帖最后由 haiou327 于 2008-5-2 11:04 PM 编辑 ]
回复

使用道具 举报

3#
发表于 2008-5-2 00:16:47 | 只看该作者
长文件名要加引号,这很多人都清楚
回复

使用道具 举报

4#
发表于 2008-5-2 00:19:31 | 只看该作者
知道的了,不过还是多谢楼主分享。

其实有时候对于还不知道的,为了弄清楚一个问题是很艰难的,所以,如果大家都把自己的经验分享一点点,那么大家反而学到的会更多
回复

使用道具 举报

5#
发表于 2008-5-2 06:14:34 | 只看该作者
支持楼上的观点。

温故而知新。
回复

使用道具 举报

6#
发表于 2008-5-2 08:56:20 | 只看该作者
文件名或目录名只要有空格,哪怕长度符合8.3规则(比如:a b.exe),在DOS下引用都要加引号,否则空格后面的字符会当作参数处理,导致出错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-28 22:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表