Environment.ExpandEnvironmentVariables(String) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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.
public:
static System::String ^ ExpandEnvironmentVariables(System::String ^ name);
public static string ExpandEnvironmentVariables (string name);
static member ExpandEnvironmentVariables : string -> string
Public Shared Function ExpandEnvironmentVariables (name As String) As String
Parameters
- name
- String
A string containing the names of zero or more environment variables. Each environment variable is quoted with the percent sign character (%).
Returns
A string with each environment variable replaced by its value.
Exceptions
name
is null
.
Examples
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
*/
// Sample for the Environment.ExpandEnvironmentVariables method
using System;
class Sample
{
public static void Main()
{
// Keep this information secure!
string query = "My system drive is %SystemDrive% and my system root is %SystemRoot%";
string str = Environment.ExpandEnvironmentVariables(query);
Console.WriteLine(str);
}
}
/*
This example prints:
My system drive is C: and my system root is C:\WINDOWS
*/
// Sample for the Environment.ExpandEnvironmentVariables method
open System
let nl = Environment.NewLine
// <-- Keep this information secure! -->
let query = "My system drive is %SystemDrive% and my system root is %SystemRoot%"
let str = Environment.ExpandEnvironmentVariables query
printfn $"\nExpandEnvironmentVariables: {nl} {str}"
// This example produces the following results:
// ExpandEnvironmentVariables:
// My system drive is C: and my system root is C:\WINNT
' Sample for the Environment.ExpandEnvironmentVariables method
Class Sample
Public Shared Sub Main()
Dim str As [String]
Dim nl As [String] = Environment.NewLine
Console.WriteLine()
' <-- Keep this information secure! -->
Dim query As [String] = "My system drive is %SystemDrive% and" & _
"my system root is %SystemRoot%"
str = Environment.ExpandEnvironmentVariables(query)
Console.WriteLine("ExpandEnvironmentVariables: {0} {1}", nl, str)
End Sub
End Class
'
'This example produces the following results:
'
'ExpandEnvironmentVariables:
' My system drive is C: and my system root is C:\WINNT
'
Remarks
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.