|
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 ]
|

尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2007-1-24 23:24 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
|
2007-1-25 00:07 |
|
|
lxmxn
版主
       
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
|
2007-1-25 00:47 |
|
|
xuduo
初级用户
 
积分 20
发帖 9
注册 2007-1-24
状态 离线
|
|
2007-1-30 16:12 |
|
|
NaturalJ0
银牌会员
    
积分 1181
发帖 533
注册 2006-8-14
状态 离线
|
|
2007-1-30 21:16 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
|
2007-2-8 22:40 |
|
|
zqz0012005
中级用户
  
积分 297
发帖 135
注册 2006-10-21
状态 离线
|
『第
7 楼』:
不是你说的那样,因为含有空格的文件(夹)的短名称中本来就不能有空格,这并不是for的bug。
|
|
2007-3-8 16:16 |
|
|
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 |
|