tools.windows.bat#批处理
关于%~
%~I - 删除任何引号("),扩展 %I %~fI - 将 %I 扩展到一个完全合格的路径名 %~dI - 仅将 %I 扩展到一个驱动器号 %~pI - 仅将 %I 扩展到一个路径 %~nI - 仅将 %I 扩展到一个文件名 %~xI - 仅将 %I 扩展到一个文件扩展名 %~sI - 扩展的路径只含有短名 %~aI - 将 %I 扩展到文件的文件属性 %~tI - 将 %I 扩展到文件的日期/时间 %~zI - 将 %I 扩展到文件的大小 %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩展到 空字符串
其中的I可以取值0~9
rem filename=ab.bat
@echo off echo %~f1 echo %1 pause
执行:
E:\>ab.bat abc.txt
E:\abc.txt
abc.txt
在执行结果中可以看到,“仅将 %I 扩展到一个...”,指的是我们通过%I得到一个新的值,% I的值本身不会改变。
关于FOR
基本的格式: FOR %variable IN (set) DO command [command-parameters] 扩展的格式: FOR /D %variable IN (set) DO command [command-parameters] FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] FOR /L %variable IN (start,step,end) DO command [command-parameters] FOR /F ["options"] %variable IN (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string") DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters]