什么是 Windows 系统变量?
最简单的例子,开一个资源管理器,在路径上输入 %SYSTEMROOT%,回车,就会转到 C:\windows 目录。
[image align=”center” width=”one_half” lightbox=”true”]https://6mhjca.dm2302.livefilestore.com/y2p5Uuk5Hr6SRnNV9zMmqlH1CZ6EodnQUcwxYLjibs2P_3xFfJxrlq4tma2SALPwhlGr_hirK59H3fgbx2dMXARxCHlvR3GkYF3rd_YRJxy35E/systemroot.png[/image]
再试试 %APPDATA%,指向的是 C:\Users\用户名\AppData\Roaming。
[image align=”center” width=”one_half” lightbox=”true”]https://tqt4qq.dm2302.livefilestore.com/y2po1StRaCzn-0XXn1ks_rm5wUvUb8ehd3hdUSvEWuqCuTDrT32uI-U_qYisguoPjaGQdbpDSmdYYNAAqv2kcw_Hb0MXbtvL8zLQmQMiuB2TXA/appdata.png[/image]
现在明白系统变量了吧,表示操作系统中一些特殊的目录位置(或信息),总表见下(按首字母排序,方便查阅)。
[table]
系统变量 | 描述 |
---|---|
%ALLUSERSPROFILE% | Profile文件位置 |
%APPDATA% | 应用程序数据的默认存放位置 |
%CD% | 当前目录 |
%CLIENTNAME% | 联接到终端服务会话时客户端的NETBIOS名 |
%CMDCMDLINE% | 启动当前cmd.exe所使用的命令行 |
%CMDEXTVERSION% | 当前命令处理程序扩展版本号 |
%CommonProgramFiles% | 常用文件的文件夹路径 |
%COMPUTERNAME% | 计算机名 |
%COMSPEC% | 可执行命令外壳(命令处理程序)的路径 |
%DATE% | 当前日期 |
%ERRORLEVEL% | 最近使用的命令的错误代码 |
%HOMEDRIVE% | 用户主目录所在的驱动器盘符 |
%HOMEPATH% | 用户主目录的完整路径 |
%HOMESHARE% | 用户共享主目录的网络路径 |
%LOGONSEVER% | 有效的当前登录会话的域名控制器名 |
%NUMBER_OF_PROCESSORS% | 计算机安装的处理器数 |
%OS% | 操作系统的名字 |
%Path% | 可执行文件的搜索路径 |
%PATHEXT% | 操作系统认为可被执行的文件扩展名 |
%PROCESSOR_ARCHITECTURE% | 处理器的芯片架构 |
%PROCESSOR_IDENTFIER% | 列出了处理器的描述 |
%PROCESSOR_LEVEL% | 计算机的处理器的型号 |
%PROCESSOR_REVISION% | 处理器的修订号 |
%PROGRAMFILES% | Program Files文件夹的路径 |
%PROMPT% | 当前命令解释器的命令提示设置 |
%RANDOM% | 界于0和32767之间的随机十进制数 |
%SESSIONNAME% | 连接到终端服务会话时的连接和会话名 |
%SYSTEMDRIVE% | Windows启动目录所在驱动器 |
%SYSTEMROOT% | Windows启动目录的位置 |
%TEMP%和%TMP% | 当前登录的用户可用应用程序的默认临时目录 |
%TIME% | 当前时间 |
%USERDOMAIN% | 包含用户帐号的域的名字 |
%USERNAME% | 当前登录的用户的名字 |
%USERPROFILE% | 当前用户Profile文件位置 |
%WINDIR% | 操作系统目录的位置 |
[/table]
并不是所有的系统变量都能在资源管理器的路径上显示出来,只有表示文件目录的可以。正确显示系统变量的信息,可以使用命令提示符下的 echo 命令,如 echo %PROGRAMFILES%,输出的是 C:\Program Files。
为了查询所有系统变量的值,我写了一个 bat 文件,内容如下:
@echo off
echo Profile文件位置:%ALLUSERSPROFILE%
echo.
echo 应用程序数据的默认存放位置:%APPDATA%
echo.
echo 当前目录:%CD%
echo.
echo 联接到终端服务会话时客户端的NETBIOS名:%CLIENTNAME%
echo.
echo 启动当前cmd.exe所使用的命令行:%CMDCMDLINE%
echo.
echo 当前命令处理程序扩展版本号:%CMDEXTVERSION%
echo.
echo 常用文件的文件夹路径:%CommonProgramFiles%
echo.
echo 计算机名:%COMPUTERNAME%
echo.
echo 可执行命令外壳(命令处理程序)的路径:%COMSPEC%
echo.
echo 当前日期:%DATE%
echo.
echo 最近使用的命令的错误代码:%ERRORLEVEL%
echo.
echo 用户主目录所在的驱动器盘符:%HOMEDRIVE%
echo.
echo 用户主目录的完整路径:%HOMEPATH%
echo.
echo 用户共享主目录的网络路径:%HOMESHARE%
echo.
echo 有效的当前登录会话的域名控制器名:%LOGONSEVER%
echo.
echo 计算机安装的处理器数:%NUMBER_OF_PROCESSORS%
echo.
echo 操作系统的名字:%OS%
echo.
echo 可执行文件的搜索路径:%Path%
echo.
echo 操作系统认为可被执行的文件扩展名:%PATHEXT%
echo.
echo 处理器的芯片架构:%PROCESSOR_ARCHITECTURE%
echo.
echo 处理器的描述:%PROCESSOR_IDENTFIER%
echo.
echo 计算机的处理器的型号:%PROCESSOR_LEVEL%
echo.
echo 处理器的修订号:%PROCESSOR_REVISION%
echo.
echo Program Files文件夹的路径:%PROGRAMFILES%
echo.
echo 当前命令解释器的命令提示设置:%PROMPT%
echo.
echo 界于0和32767之间的随机十进制数:%RANDOM%
echo.
echo 连接到终端服务会话时的连接和会话名:%SESSIONNAME%
echo.
echo Windows启动目录所在驱动器:%SYSTEMDRIVE%
echo.
echo Windows启动目录的位置:%SYSTEMROOT%
echo.
echo 当前登录的用户可用应用程序的默认临时目录:%TEMP%和%TMP%
echo.
echo 当前时间:%TIME%
echo.
echo 包含用户帐号的域的名字:%USERDOMAIN%
echo.
echo 当前登录的用户的名字:%USERNAME%
echo.
echo 当前用户Profile文件位置:%USERPROFILE%
echo.
echo 操作系统目录的位置:%WINDIR%
echo.
pause
这个 bat 可以从这儿直接下载:http://pan.baidu.com/share/link?shareid=421013&uk=1426189689
其中 echo. 表示的是输出一个空行。
bat 的在我机子上运行结果如下(我用的操作系统为 Win7,安装在 C 盘):
Profile文件位置:C:\ProgramData
应用程序数据的默认存放位置:C:\Users\Tony\AppData\Roaming
当前目录:C:\Users\Tony\Desktop
联接到终端服务会话时客户端的NETBIOS名:
启动当前cmd.exe所使用的命令行:"C:\windows\system32\cmd.exe"
当前命令处理程序扩展版本号:2
常用文件的文件夹路径:C:\Program Files\Common Files
计算机名:TONY-PC
可执行命令外壳(命令处理程序)的路径:C:\windows\system32\cmd.exe
当前日期:2013/05/13 周一
最近使用的命令的错误代码:9009
用户主目录所在的驱动器盘符:C:
用户主目录的完整路径:\Users\Tony
用户共享主目录的网络路径:
有效的当前登录会话的域名控制器名:
计算机安装的处理器数:4
操作系统的名字:Windows_NT
可执行文件的搜索路径:C:\Program Files\Embarcadero\RAD Studio\10.0\bin;C:\Users\Public\Documents\RAD Studio\10.0\Bpl;C:\Program Files\Embarcadero\RAD Studio\10.0\bin64;C:\Users\Public\Documents\RAD Studio\10.0\Bpl\Win64;C:\Program Files\AMD APP\bin\x86;E:\ORACLE11GR2\product\11.2.0\dbhome_1\bin;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Subversion\bin;C:\Program Files\Common Files\Acronis\SnapAPI\;C:\Program Files\Acronis\TrueImageHome\;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microsoft Visual Studio\VC98\bin;C:\Program Files\Java\jdk1.7.0_05\bin
操作系统认为可被执行的文件扩展名:.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
处理器的芯片架构:x86
处理器的描述:
计算机的处理器的型号:6
处理器的修订号:2505
Program Files文件夹的路径:C:\Program Files
当前命令解释器的命令提示设置:$P$G
界于0和32767之间的随机十进制数:20174
连接到终端服务会话时的连接和会话名:Console
Windows启动目录所在驱动器:C:
Windows启动目录的位置:C:\windows
当前登录的用户可用应用程序的默认临时目录:C:\Users\Tony\AppData\Local\Temp和C:\Users\Tony\AppData\Local\Temp
当前时间: 8:15:09.77
包含用户帐号的域的名字:Tony-PC
当前登录的用户的名字:Tony
当前用户Profile文件位置:C:\Users\Tony
操作系统目录的位置:C:\windows
请按任意键继续. . .
是不是很像系统快照?平时开发也方便了系统路径和本机信息的获取。