中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 03:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » %%~sI 跟%%~fI有什么区别? 查看 884 回复 4
楼 主 %%~sI 跟%%~fI有什么区别? 发表于 2007-10-05 21:44 ·  中国 黑龙江 哈尔滨 联通
初级用户
积分 64
发帖 27
注册 2007-10-03 11:01
18年会员
UID 98818
性别 男
状态 离线
for中的这两个运行后是一样的啊
2 发表于 2007-10-05 23:14 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
看for命令的帮助。
%~fI - 将 %I 扩充到一个完全合格的路径名
%~sI - 扩充的路径只含有短名
3 发表于 2007-10-15 14:40 ·  中国 江苏 苏州 联通
新手上路
积分 13
发帖 7
注册 2007-09-26 22:45
18年会员
UID 98359
性别 男
状态 离线
楼上的
可以举一个具体的事列来说明嘛!谢谢!
4 发表于 2007-10-15 16:50 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by piliwang at 2007-10-15 14:40:
楼上的
可以举一个具体的事列来说明嘛!谢谢!

运行下面的批处理:

@echo off
echo %%~f0 的值为:
echo 文件的完整路径:%~f0
echo %%~s0 的值为:
echo 文件短路径:%~s0
echo %%~z0 的值为:
echo 文件大小:%~z0
echo 类似还有很多,参考for命令!
pause
5 发表于 2007-10-18 23:09 ·  中国 上海 杨浦区 电信
初级用户
积分 24
发帖 11
注册 2007-03-29 16:12
19年会员
UID 83306
性别 男
来自 安徽
状态 离线
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 ]
~永不言弃~
论坛跳转: