中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 21:50
47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解决]批处理参数扩展,无法得到正确的短格式
可打印版本  806 / 3
第1楼 dejoy 发表于 2008-09-25 09:49
初级用户 发帖 64 积分 76
[已解决]批处理参数扩展,无法得到正确的短格式
我有a.bat如下,显示各种参数的扩展值:

执行a "c:\afff sf\ttt.txt",显示结果如下:
1="c:\afff sf\ttt.txt"
~1=c:\afff sf\ttt.txt
~f1=c:\afff sf\ttt.txt
~p1=\afff sf\
~n1=ttt
~s1=c:\afff sf\ttt.txt
~dp1=c:\afff sf\

查看call /?,~s1是返回短格式名称,但这里返回的并不是短格式而是完整的c:\afff sf\ttt.txt,不知是何故,请教. win2000/winxp/win2003都是如此,win98好像无法解释扩展参数,带~的都返回空

注:此扩展有个限制,即要被扩展的目录存在,才能转换成短格式,否则原样返回

[ Last edited by dejoy on 2008-9-25 at 11:37 PM ]
第2楼 moniuming 发表于 2008-09-25 10:11
银牌会员 发帖 574 积分 1,335 来自 广西
因为你的路径及文件名还不够长
第3楼 dejoy 发表于 2008-09-25 12:35
初级用户 发帖 64 积分 76
不够长?不是超过8个字符就会转成短格式了吗?那需要多长啊?

这个说法似乎不对,经测试
a "c:\sfsfsfsf kklllklll\slgkjglkjlkjo.txt"

显示结果:
1="c:\sfsfsfsf kklllklll\slgkjglkjlkjo.txt"
~1=c:\sfsfsfsf kklllklll\slgkjglkjlkjo.txt
~f1=c:\sfsfsfsf kklllklll\slgkjglkjlkjo.txt
~p1=\sfsfsfsf kklllklll\
~n1=slgkjglkjlkjo
~s1=c:\sfsfsfsf kklllklll\slgkjglkjlkjo.txt
~dp1=c:\sfsfsfsf kklllklll\

这个够长了吧,可是还没转换成短格式

[ Last edited by dejoy on 2008-9-25 at 12:37 PM ]
第4楼 dejoy 发表于 2008-09-25 23:34
初级用户 发帖 64 积分 76
知道了,原来此扩展有个限制,即要被扩展的目录存在,才能转换成短格式,否则原样返回.如存在C:\Documents and Settings\Administrator\My Documents\a.txt
执行:a "C:\Documents and Settings\Administrator\My Documents\a.txt"

显示结果(正确):
1="C:\Documents and Settings\Administrator\My Documents\a.txt"
~1=C:\Documents and Settings\Administrator\My Documents\a.txt
~f1=C:\Documents and Settings\Administrator\My Documents\a.txt
~p1=\Documents and Settings\Administrator\My Documents\
~n1=a
~s1=C:\DOCUME~1\ADMINI~1\MYDOCU~1\a.txt
~dp1=C:\Documents and Settings\Administrator\My Documents\

[ Last edited by dejoy on 2008-9-25 at 11:38 PM ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023