Windows 批处理参数修饰符说明文档

📌 什么是参数修饰符?

参数修饰符用于提取文件路径变量中的特定部分,如文件名、扩展名、路径等。常用于批处理脚本中的 %0, %1, %%F 等参数。


🔧 常见语法格式

%~修饰符N%
%%~修饰符F%%

🧩 参数修饰符一览表

修饰符含义示例(输入:C:\Path\file.txt输出示例
~f全路径(Full Path)%~f1C:\Path\file.txt
~d驱动器(Drive)%~d1C:
~p路径(Path)%~p1\Path\
~n文件名(Name,无扩展)%~n1file
~x扩展名(eXtension)%~x1.txt
~s短文件名(8.3 格式)%~s1C:\PATH\FILE~1.TXT
~a文件属性(Attributes)%~a1--a--------
~t修改时间(Time)%~t12025/05/02 12:00
~z文件大小(siZe)%~z115324

🧩 组合使用示例

表达式含义示例输出
%~dp1驱动器 + 路径C:\Path\
%~nx1文件名 + 扩展名file.txt
%~dpnx1驱动器 + 路径 + 文件名 + 扩展名C:\Path\file.txt

📘 实用示例(在 FOR 循环中)

@echo off
for %%F in (*.txt) do (
    echo 文件路径:%%~fF
    echo 文件名:%%~nF
    echo 扩展名:%%xF
    echo --------    
)

🧩 常见修饰符总览(适用于 %%F)

写法含义
%%~fF全路径(Full path)
%%~dF驱动器盘符
%%~pF路径(不含驱动器)
%%~nF文件名(不含扩展名)
%%~xF扩展名
%%~nxF文件名 + 扩展名
%%~dpF驱动器 + 路径

🔍 示例脚本

@echo off
for %%F in (*.txt) do (
    echo 文件完整路径:%%~fF
    echo 文件名(无扩展名):%%~nF
    echo ---------
)

如果当前目录下有 report.txt 和 log.txt,输出大致如下:

文件完整路径:C:\Test\report.txt
文件名(无扩展名):report
---------------
文件完整路径:C:\Test\log.txt
文件名(无扩展名):log
---------------