Windows中是否有环境变量指示存储所有用户共享的应用程序数据的文件夹?
在Windows Vista及更高版本中,这是%ALLUSERSPROFILE%
(通常映射到C:/ProgramData
)。但是在Windows XP中,%ALLUSERSPROFILE%
映射到C:\Documents and Settings\All Users
,我仍然需要添加\Program Data\
之类的内容才能到达等效位置。
答案 0 :(得分:3)
我不知道批处理文件的好解决方案,但我可以解释历史。
在Windows 2000 / XP / 2003上%ALLUSERSPROFILE%
正是它的名称,即all-users / shared / common配置文件目录的根目录。通常为“C:\ Documents and Settings \ All Users”。
Windows shell有一个名为CSIDL_COMMON_APPDATA的特殊文件夹常量,它通常解析为“C:\ Documents and Settings \ All Users \ Application Data”但遗憾的是,这些系统上没有为此路径设置环境变量
在Windows Vista及更高版本中,文档,音乐和视频文件夹被移出%ALLUSERSPROFILE%
文件夹并放在名为Public(“c:\ Users \ Public”)的新文件夹中,可以找到{ {1}}。 CSIDL_COMMON_APPDATA还有一个名为%PUBLIC%
的环境变量,并且由于大多数其他文件夹已移至%ProgramData%
,因此确定%PUBLIC%
不需要Application Data子文件夹,因此%ALLUSERSPROFILE%
是与%ProgramData%
相同。
如果您正在编写批处理文件:
我的建议是,如果它存在则使用%ALLUSERSPROFILE%
,否则,请回到%ProgramData%
。我不知道Application Data文件夹在Windows的本地化版本上是否有不同的名称......
如果您正在编写C / C ++应用程序:
如果您正在编写.NET应用程序: