[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理for命令的文件扩展没有结果

FOR的文件名扩展中有一个是 %~$path:i

FOR /S 的说明是
%~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩充
               到找到的第一个完全合格的名称。如果环境变量名
               未被定义,或者没有找到文件,此组合键会扩充到
               空字符串

$path 表示路径环境变量,这个我理解,比如 %~$homedir , %~$windir 都是正确的,但是输出结果肯本看不出有什么不同..
比如说当前 D:\TEST 目录下有个 123.txt文件,再在%windir%=c:\windows 下也建一个123.txt,
那么按字面意思是也就是会把C;\WINDOWS下的123.txt文件显示出来
d:\test>for /r %i in (*.txt) do echo %~$windir:i
后结果却没什么不同啊。。

[ 本帖最后由 caruko 于 2010-3-23 21:14 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

要把 /R  参数去掉

/R  参数是指定FOR 的操作目录

你都把FOR  的操作目录指定了,   你现在又想想看, 他能找到C:\windows\123.txt  吗????!!!

总之一句话, 不带/R 参数,操作当前目录, 代支持微软设技的小鞋(%~$变量:i)  , 带/R 参数, 就是指定死了目录
1

评分人数

    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

原来如此...
多谢2楼!!!

TOP

返回列表