在命令行中调用 for /?
可以获取关于此语法的帮助(该语法不仅可以在 FOR
循环中使用,在其他地方也可以使用,这里只是提供帮助信息的地方)。此外,对 FOR
变量引用的替换功能也得到了增强。现在可以使用以下可选语法:
%~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
变量名终止。选择大写的变量名如 %I
可使其更易读,并避免与不区分大小写的修饰符混淆。
你可以使用不同的字母,例如 f
表示“完整路径名”,d
表示驱动器字母,p
表示路径,它们可以组合使用。%~
是每个序列的开始,数字 I
表示它作用于参数 %I
(其中 %0
是批处理文件的完整名称,正如你所假设的那样)。