在 Windows 10 的批处理脚本(.bat 或.cmd 文件)中,系统预定义了一系列环境变量,这些变量可以直接调用,用于获取系统信息、路径、用户信息等。以下是常用的预定义变量分类及说明:
一、系统路径与目录相关变量
变量名 | 说明 |
---|---|
%SystemRoot%
|
系统根目录(通常为 C:\Windows ),包含系统核心文件(如system32 )。
|
%SystemDrive%
|
系统所在驱动器(通常为 C: )。
|
%windir%
|
等同于%SystemRoot% ,指向 Windows 安装目录。
|
%ProgramFiles%
|
32 位程序默认安装目录(通常为 C:\Program Files )。
|
%ProgramFiles(x86)%
|
64 位系统中 32 位程序的安装目录(通常为 C:\Program Files (x86) )。
|
%ProgramData%
|
所有用户共享的应用程序数据目录(通常为 C:\ProgramData )。
|
%AppData%
|
当前用户的应用程序数据目录(漫游,会同步到域服务器,如 C:\Users\用户名\AppData\Roaming )。
|
%LocalAppData%
|
当前用户的本地应用程序数据目录(非漫游,如 C:\Users\用户名\AppData\Local )。
|
%Temp% / %TMP%
|
当前用户的临时文件目录(通常为 C:\Users\用户名\AppData\Local\Temp )。
|
%USERPROFILE%
|
当前用户的主目录(如 C:\Users\用户名 )。
|
%HOMEPATH%
|
当前用户主目录的路径(相对于系统驱动器,如 \Users\用户名 )。
|
%HOMEDRIVE%
|
当前用户主目录所在的驱动器(通常为 C: )。
|
二、用户与环境相关变量
变量名 | 说明 |
---|---|
%USERNAME%
|
当前登录用户的用户名。 |
%USERDOMAIN%
|
当前用户所在的域(工作组环境下通常为计算机名)。 |
%COMPUTERNAME%
|
当前计算机的名称。 |
%USERDOMAIN_ROAMINGPROFILE%
|
用于漫游配置文件的用户域。 |
%ALLUSERSPROFILE%
|
所有用户的公共配置文件目录(等同于%ProgramData% )。
|
三、命令与脚本运行相关变量
变量名 | 说明 |
---|---|
%0
|
批处理脚本自身的文件名(包含路径时为完整路径,否则为文件名)。 |
%1 ~ %9
|
批处理脚本的命令行参数(%1 为第一个参数,%2 为第二个,以此类推)。
|
%*
|
所有命令行参数的集合(包含%1 到%9 及更多参数)。
|
%ERRORLEVEL%
|
上一条命令执行后的返回码(0 表示成功,非0 表示失败)。
|
%CD%
|
当前批处理脚本执行时的工作目录(当前路径)。 |
%DATE%
|
当前系统日期(格式由区域设置决定,如 2025/07/15 )。
|
%TIME%
|
当前系统时间(格式由区域设置决定,如 10:30:25.50 )。
|
%RANDOM%
|
生成一个 0~32767 之间的随机整数。 |
四、网络与设备相关变量
变量名 | 说明 |
---|---|
%LOGONSERVER%
|
当前用户登录的服务器(域环境下有效,如 \\DOMAIN-SERVER )。
|
%OS%
|
操作系统名称(Windows 10 中通常返回 Windows_NT )。
|
%PROCESSOR_ARCHITECTURE%
|
处理器架构(32 位为 x86 ,64 位为 AMD64 )。
|
%NUMBER_OF_PROCESSORS%
|
处理器核心数量(如 8 表示 8 核)。
|
五、使用示例
在批处理脚本中,可以直接通过
echo
命令输出变量值,例如:
batch
@echo off echo 系统根目录:%SystemRoot% echo 当前用户名:%USERNAME% echo 当前时间:%TIME% echo 脚本参数1:%1 pause
说明
-
变量名不区分大小写(如
%username%
与%USERNAME%
效果相同)。 -
部分变量(如
%ProgramFiles(x86)%
)仅在 64 位系统中存在。 -
可通过在命令提示符中输入
set
命令,查看当前系统中所有预定义的环境变量及其值。
这些变量在批处理脚本中非常实用,可用于路径拼接、参数传递、条件判断等场景。
强劲的%~dp0
%~dp0 是对脚本自身路径的扩展,其中:
-
%0
:代表批处理脚本自身的文件名(包含调用时的路径信息)。 -
~d
:扩展为%0
对应的盘符(如C:
、D:
)。 -
~p
:扩展为%0
对应的路径(不含文件名,包含最后一个反斜杠\
)。 -
组合后,
%~dp0
即表示 “脚本所在的盘符 + 完整路径”。