已经增强了 for 变量引用的替换修改程序。下表列出可选语法(对于任意变量 I)。
%~I:展开删除任何前后引号 ("") 的 %I。
%~fI:将 %I 展开到完全合格的路径名。
%~dI:只将 %I 展开到驱动器号。
%~pI:只将 %I 展开到路径。
%~nI:只将 %I 展开到文件名。
%~xI:只将 %I 展开到文件扩展名。
%~sI:展开路径以只包含短名称。
%~aI:将 %I 展开到文件的文件属性。
%~tI:将 %I 展开到文件的日期和时间。
%~zI:将 %I 展开到文件大小。
%~$PATH:I:搜索 PATH 环境变量所列出的目录,并将 %I 展开到第一个找到的完全合格的名称。如果没有定义环境变量名称,或搜索没有找到文件,则此修改程序扩展成空字符串。
下表列出可用来获得综合结果的修改程序组合。
%~dpI:只将 %I 展开到驱动器号和路径。
%~nxI:只将 %I 展开到文件名和扩展名。
%~fsI:将 %I 展开到只包含短名称的完整路径名。
%~dp$PATH:I:在 PATH 环境变量中所列出的目录中搜索 %I,并展开到第一个找到结果的驱动器号和路径。
%~ftzaI:将 %I 展开到输出行(如 dir一样)。
在上述范例中,可以用其它有效值替换 %I 和 PATH。有效的 for 变量名终止 %~ syntax。
使用大写变量名(例如 %I),可以使代码更具可读性,并且避免与不区分大小写的修改程序混淆。
通过将 Filenameset 包括在圆括号内,并且外面再带上单引号(即,'filenameset'),可以使用 for /F 对直接字符串解析逻辑。将 Filenameset 视为从某个文件输入的单行,然后接受解析。
通过将圆括号之间的 filenameset 变为后面带有引号的字符串,可以利用 for /F 命令解析命令输出。将它作为命令行,此命令被传递给子 Cmd.exe,并将输出捕获到内存并进行解析,就象它是一个文件一样。
未完见下页