转载:http://www.slyar.com/blog/envionment-variables.html
转载:http://blog.csdn.net/wuliusir/article/details/20035043
环境变量一般是包含在一对 "%" 号之间的,你可以在 CMD 下输入 "set" 来查看系统所有的环境变量,这里我说几个默认的而且非常常用的环境变量。
假设我的操作系统为 Windows XP ,我的用户名为 Slyar
%HOMEDRIVE% = C:
指的是引导分区的根目录,一般都是 C:
%windir% = C:WINDOWS
指的是 Windows 的安装文件夹。
在 Windows XP、Windows 2003 下这个变量一般是 C:WINDOWS
在 Windows 2000、Windows 98、Windows me 下这个变量一般是 C:WINNT
%SystemRoot% = C:WINDOWS
这个同样指的是 Windows 的安装文件夹,应该是等于 %windir% 的。只是据我研究, %systemroot% 变量可能在 Windows 95 或者 Windows 98 的机器上不存在。因此对于早期的 Windows 系统,最好使用 %windir% ,而对于 Windows XP 或者 Windows 2003 来说,两者都可以使用。
%USERPROFILE% = C:Documents and SettingsSlyar
这个指的是当前用户 Profile 文件的位置,一般都是 C:Documents and Settings你的用户名
%HOMEPATH% = C:Documents and SettingsSlyar
这个指的是系统当前用户主目录的完整路径,用户主目录是在"本地用户和组"中指定的,默认是 C:Documents and Settings你的用户名
%APPDATA% = C:Documents and SettingsSlyarApplication Data
这个指的是应用程序数据的位置,默认是C:Documents and Settings你的用户名Application Data
%temp% = C:Documents and SettingsSlyarLocal SettingsTemp
%tmp% = C:Documents and SettingsSlyarLocal SettingsTemp
这个指的是当前登录用户可用的应用程序所使用的默认临时目录,有些应用程序需要 TEMP,还有一些应用程序需要 TMP。 默认都是 C:Documents and Settings你的用户名Local SettingsTemp
%programfiles% = C:Program Files
这个指的是程序安装目录,默认是 C:Program Files
你可以通过在"资源管理器"或者"我的电脑"的地址栏直接输入环境变量来访问环境变量所指向的文件夹,当然你也可以在"我的电脑(属性)--高级--环境变量--新建"或者"在CMD下使用 set 命令"自己设置环境变量方便自己访问。
环境变量 路径
%ALLUSERSPROFILE% C:ProgramData
%APPDATA% C:Users用户名AppDataRoaming
%COMMONPROGRAMFILES% C:Program FilesCommon Files
%COMMONPROGRAMFILES(x86)% C:Program Files (x86)Common Files
%COMSPEC% C:WindowsSystem32cmd.exe
%HOMEDRIVE%和%SystemDrive% C:
%HOMEPATH% C:Users用户名
%LOCALAPPDATA% C:Users用户名AppDataLocal
%PROGRAMDATA% C:ProgramData
%PROGRAMFILES% C:Program Files
%PROGRAMFILES(X86)% C:Program Files (x86)
%PUBLIC% C:UsersPublic
%SystemRoot% C:Windows
%TEMP%和%TMP% C:Users用户名AppDataLocalTemp
%USERPROFILE% C:Users用户名
%WINDIR% C:Window
例子:
#include <iostream> #include <windows.h> #include <shlobj.h> #pragma comment(lib, "shell32.lib") using namespace std; int main() { TCHAR szText[MAX_PATH + 1] = { 0 }; SHGetSpecialFolderPath(0, szText, CSIDL_MYDOCUMENTS, 0); wcout << szText << endl; getchar(); return 0; }