Windows中是否有环境变量指示用于存储所有用户共享的应用程序数据的文件夹?
在Windows Vista和更高版本中,这是%ALLUSERSPROFILE% (通常映射到C:/ProgramData)。然而,在Windows XP中,%ALLUSERSPROFILE%映射到C:\Documents and Settings\All Users,我仍然需要添加像\Program Data\这样的东西才能到达相同的位置。
发布于 2017-01-01 07:22:38
我不知道批处理文件有什么好的解决方案,但我可以解释一下它的历史。
在Windows2000/XP/2003上,%ALLUSERSPROFILE%与其名称完全相同,是所有用户/共享/公共配置文件目录的根目录。通常是"C:\Documents and Settings\All Users“。
Windows shell有一个名为CSIDL_COMMON_APPDATA的特殊文件夹常量,它通常解析为"C:\Documents and Settings\All Users\Application Data“,但不幸的是,在这些系统上没有为此路径设置环境变量。
在Windows Vista和更高版本中,documents、music和video文件夹从%ALLUSERSPROFILE%文件夹中移出,放在一个名为“公共”("c:\Users\ Public ")的新文件夹中,可以通过%PUBLIC%找到这些文件夹。CSIDL_COMMON_APPDATA还获得了一个名为%ProgramData%的环境变量,由于大多数其他文件夹都移到了%PUBLIC%,因此决定%ALLUSERSPROFILE%不需要Application data子文件夹,因此%ProgramData%与%ALLUSERSPROFILE%相同。
如果您正在编写批处理文件:
我的建议是,如果%ProgramData%存在,就使用它,否则,使用%ALLUSERSPROFILE%\Application Data。我不知道Application Data文件夹在Windows的本地化版本中是否有不同的名称...
如果您正在编写C/C++应用程序:
如果您正在编写.NET应用程序:
https://stackoverflow.com/questions/37269376
复制相似问题