中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 04:02
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » %%~sI 跟%%~fI有什么区别?
可打印版本  885 / 4
第1楼 ssyfzy 发表于 2007-10-05 21:44
初级用户 发帖 27 积分 64
%%~sI 跟%%~fI有什么区别?
for中的这两个运行后是一样的啊
第2楼 lxmxn 发表于 2007-10-05 23:14
版主 发帖 4,938 积分 11,386
看for命令的帮助。
%~fI - 将 %I 扩充到一个完全合格的路径名
%~sI - 扩充的路径只含有短名
第3楼 piliwang 发表于 2007-10-15 14:40
新手上路 发帖 7 积分 13
楼上的
可以举一个具体的事列来说明嘛!谢谢!
第4楼 lxmxn 发表于 2007-10-15 16:50
版主 发帖 4,938 积分 11,386
Originally posted by piliwang at 2007-10-15 14:40:
楼上的
可以举一个具体的事列来说明嘛!谢谢!

运行下面的批处理:
第5楼 buzhaiwen 发表于 2007-10-18 23:09
初级用户 发帖 11 积分 24 来自 安徽
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
上面是帮助里面的,我把它改为
FOR /F "delims=" %i IN (`dir /b`) DO @echo %%i
上面的命令行就容易理解了吧(显示当前路径下的目录及文件名)...
我的C目录下有这些:C:\>dir /b
123
123.txt
aaaaa.bat
AUTOEXEC.BAT
BOOTini.bak
CONFIG.SYS
Documents and Settings
FFAST500.FF_
Program Files
WINDOWS
wmpub
而此时我把他改为:

FOR /F "delims=" %i IN (`dir /b`) DO @echo %%~fi
运行结果为:
C:\123
C:\123.txt
C:\aaaaa.bat
C:\AUTOEXEC.BAT
C:\BOOTini.bak
C:\CONFIG.SYS
C:\Documents and Settings
C:\FFAST500.FF_
C:\Program Files
C:\WINDOWS
C:\wmpub

看到有什么区别了吗?
在看看FOR的帮助吧...
%~fI - 将 %I 扩充到一个完全合格的路径名
把上面的变量由:%%i改为:%%~fi
后者只是多加了个 ~f
前者是只显示出了文件名,而后者显示了完整的路径名(符合定义吧)

对for我也刚学不久,,,太菜了.只能说这样了...
你在看看for的帮助慢慢理解吧....

[ Last edited by buzhaiwen on 2007-10-18 at 11:11 PM ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023