中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for扩展中短文件名扩展的一个bug
作者:
标题: for扩展中短文件名扩展的一个bug 上一主题 | 下一主题
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『楼 主』:  for扩展中短文件名扩展的一个bug

  在for扩展中,%%~si 表示扩充的路径只含短文件名,但是在以下的测试过程中,却发现真正的情况并非如此:

  测试环境:
D:\abcdefg hijk\abcd efgh.txt
D:\abcdefg hijk\te st.txt
  测试代码:
@echo off
for /f "delims=" %%i in ('dir /a /b *.txt') do echo %%~si
pause
  测试结果:
D:\ABCDEF~1\ABCDEF~1.TXT
D:\ABCDEF~1\TEST~1.TXTtxt
  看到测试结果的最后一条记录了吗?居然扩展到了 TEST~1.TXTtxt

  总结了一下出错的情形,似乎是这样的:当路径中有超过一个的地方因为目录名超过11个字符而扩充到短文件名的时候,文件名+后缀名 少于11个字符且带空格的文件就会发生扩展错误。不知哪位能作一下深入的分析。

[ Last edited by namejm on 2007-1-24 at 02:22 PM ]

   此帖被 +10 点积分       点击查看详情   
评分人:【 redtek 分数: +10  时间:2007-1-30 22:07




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-1-24 23:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  

这个BUG我已领教过了



第一高手    第二高手

2007-1-25 00:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  


  呵呵,果然是这样的。


2007-1-25 00:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xuduo
初级用户





积分 20
发帖 9
注册 2007-1-24
状态 离线
『第 4 楼』:  

我也遇到过

2007-1-30 16:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 5 楼』:  

还没碰到过,正好学习下。^_^

2007-1-30 21:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 6 楼』:  

看到了,学到了

2007-2-8 22:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zqz0012005
中级用户




积分 297
发帖 135
注册 2006-10-21
状态 离线
『第 7 楼』:  

不是你说的那样,因为含有空格的文件(夹)的短名称中本来就不能有空格,这并不是for的bug。

2007-3-8 16:16
查看资料  发短消息 网志  OICQ (411976538)  编辑帖子  回复  引用回复
taozicici
新手上路





积分 12
发帖 6
注册 2007-4-21
状态 离线
『第 8 楼』:  


完全不懂
看来以后每天要有18个小时泡论坛了

2007-5-1 01:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 9 楼』:  

8.3的命令规范中不允许使用空格,所以长名扩展短名时,空格被自动缩进了

2007-5-1 03:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccuu668
初级用户





积分 57
发帖 29
注册 2006-12-27
状态 离线
『第 10 楼』:  

看来只有自己多对自己扫扫盲了.感叹呀!这里的强人,高手真多.

2007-5-2 15:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: