Environment::ExpandEnvironmentVariables Method (String^)
Replaces the name of each environment variable embedded in the specified string with the string equivalent of the value of the variable, then returns the resulting string.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- name
-
Type:
System::String^
A string containing the names of zero or more environment variables. Each environment variable is quoted with the percent sign character (%).
| Exception | Condition |
|---|---|
| ArgumentNullException | name is null. |
COM interop is used to retrieve the environment variables from the operating system. If the environment variables cannot be retrieved due to a COM error, the HRESULT that explains the cause of the failure is used to generate one of several possible exceptions; that is, the exception depends on the HRESULT. For more information about how the HRESULT is processed, see the Remarks section of the Marshal::ThrowExceptionForHR method.
Replacement only occurs for environment variables that are set. For example, suppose name is "MyENV = %MyENV%". If the environment variable, MyENV, is set to 42, this method returns "MyENV = 42". If MyENV is not set, no change occurs; this method returns "MyENV = %MyENV%".
The size of the return value is limited to 32K.
The following example shows how to obtain the system drive and system root variables.
// Sample for the Environment::ExpandEnvironmentVariables method using namespace System; int main() { String^ str; String^ nl = Environment::NewLine; Console::WriteLine(); // <-- Keep this information secure! --> String^ query = "My system drive is %SystemDrive% and my system root is %SystemRoot%"; str = Environment::ExpandEnvironmentVariables( query ); Console::WriteLine( "ExpandEnvironmentVariables: {0} {1}", nl, str ); } /* This example produces the following results: ExpandEnvironmentVariables: My system drive is C: and my system root is C:\WINNT */
for the ability to access the environment variables in name. Associated enumeration: EnvironmentPermissionAccess::Read
Available since 10
.NET Framework
Available since 1.1