我正在尝试获取环境变量的实际值。
以下是我的代码:
string query = string.Format("Select VariableValue From Win32_Environment Where Name = '{0}'", variableName);
using (var searcher = new ManagementObjectSearcher(query))
using (ManagementObject result = searcher.Get().Cast<ManagementObject>().FirstOrDefault())
{
if (result != null)
return Convert.ToString(result["VariableValue"]);
}
那样做没问题,但问题在于:将“windir”作为名称传递会获取“%SystemRoot%”作为值。我真正想要的是实际路径,即“C:\Windows”。
我尝试使用递归来获取“SystemRoot”的值,但没有找到匹配项。
我该如何确保返回真实值?谢谢!