CMD 中 %n 指当前运行的批处理本身,以及后续用空格隔开的参数。那么 %~dp0 是什么意思?%~ftza0呢?本文做个小结,算作 Cheatsheet 以备不时之需。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
chcp 65001
setlocal EnableDelayedExpansion
cls
@echo off

echo 00.【%%cd%%】%cd%

echo 01.【%%0】 :%0

rem %~f0 - 将 %0 扩充到一个完全合格的路径名(“f”是 file,即文件)
echo 02.【%%~f0】:%~f0

rem %~s0 - 扩充的路径只含有短名(“s”为 Short,短的)
echo 03.【%%~s0】:%~s0

rem %~d0 - 仅将 %0 扩充到一个驱动器号 (“d”为 Drive 的缩写,即为驱动器,磁盘)
echo 04.【%%~d0】:%~d0

rem %~p0 - 仅将 %0 扩充到一个路径 (“p”为 Path 缩写,即为路径,目录)
echo 05.【%%~p0】:%~p0

rem %~n0 - 仅将 %0 扩充到一个文件名(“n”是 name 文件名)
echo 06.【%%~n0】:%~n0

rem %~x0 - 仅将 %0 扩充到一个文件扩展名
echo 07.【%%~x0】:%~x0

rem %~a0 - 将 %0 扩充到文件的文件属性(“a”为 attribute,即属性)
echo 08.【%%~a0】:%~a0

rem 将 %0 扩充到文件的大小(Size 大小)
echo 09.【%%~z0】:%~z0

rem %~t0 - 将 %0 扩充到文件的日期 / 时间(“t”time)
echo 10.【%%~t0】:%~t0

echo.

pause

▲ 执行截图