Board logo

标题: %%~sI 跟%%~fI有什么区别? [打印本页]

作者: ssyfzy     时间: 2007-10-5 21:44    标题: %%~sI 跟%%~fI有什么区别?

for中的这两个运行后是一样的啊
作者: lxmxn     时间: 2007-10-5 23:14
看for命令的帮助。

  Quote:
     %~fI        - 将 %I 扩充到一个完全合格的路径名
     %~sI        - 扩充的路径只含有短名


作者: piliwang     时间: 2007-10-15 14:40
楼上的
可以举一个具体的事列来说明嘛!谢谢!
作者: lxmxn     时间: 2007-10-15 16:50


  Quote:
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

作者: buzhaiwen     时间: 2007-10-18 23:09
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 ]