Board logo

标题: for语句中%~fsi的问题??? [打印本页]

作者: sunyao     时间: 2006-11-29 06:20    标题: for语句中%~fsi的问题???

查了for /?
%~fsI  是将 %I 展开到只包含短名称的完整路径名。
通过实验
SET WL_HOME=C:\bea\weblogic91
FOR %%i IN ("%WL_HOME%") DO SET WL_HOME=%%~fsi
echo %WL_HOME%
pause
显示WL_HOME=C:\bea\WEBLOG~1
不知道如何解释将“ %I 展开到只包含短名称的完整路径名“这句话
帮忙解释一下
作者: lxmxn     时间: 2006-11-29 06:59

  可以这样理解,如果%i是指的文件,那么%~fsi就指的这个文件的路径和短文件名了,这个过程叫作扩展。

作者: sunyao     时间: 2006-11-29 23:00
所谓端文件名是怎么定义的C:\bea\weblogic91
怎么就变成C:\bea\WEBLOG~1了呢
作者: ccwan     时间: 2006-11-30 01:17
帮你“百度”到的:
当一个磁盘或目录下有长文件名时,由于DOS只能识别“8.3制”文件,所以会取长文件名的前“6个字母”加“~1”来表示,如“C:\Program Files”应该写为“C:\Progra~1”,如果再有“Program Common”这样的文件,那么名字就变成这样了:

“C:\Program Common”应该写为“C:\Progra~1”,
“C:\Program Files”应该写为“C:\Progra~2”,

也就是说,按字母的顺序写的。

作者: ccwan     时间: 2006-11-30 01:23
给你个例子:
@echo off
for %%i in (.) do @echo %%~si
pause>nul
以上代码存为*.bat,在任意目录下运行,可以看到当前目录的短名。
作者: sunyao     时间: 2006-11-30 02:28
感谢ccwan
明白了
作者: xuzhenhui     时间: 2007-1-13 03:53    标题: 批处理中的特殊符号

请问各位批处理中"^ ! -1 ~"这些特殊符号的作用和用法
作者: lxmxn     时间: 2007-1-13 03:56


  Quote:
Originally posted by xuzhenhui at 2007-1-12 14:53:
请问各位批处理中"^ ! -1 ~"这些特殊符号的作用和用法


  DOS符号的问题

  去上面这个帖子的4楼看看吧,对你有帮助的。


[ Last edited by lxmxn on 2007-1-12 at 02:57 PM ]
作者: jwm112377     时间: 2009-6-18 22:43
受益匪浅啊!