Environment.GetEnvironmentVariable 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
환경 변수의 값을 검색합니다.
오버로드
| Name | Description |
|---|---|
| GetEnvironmentVariable(String) |
현재 프로세스에서 환경 변수의 값을 검색합니다. |
| GetEnvironmentVariable(String, EnvironmentVariableTarget) |
현재 프로세스 또는 현재 사용자 또는 로컬 컴퓨터에 대한 Windows 운영 체제 레지스트리 키에서 환경 변수의 값을 검색합니다. |
GetEnvironmentVariable(String)
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
현재 프로세스에서 환경 변수의 값을 검색합니다.
public:
static System::String ^ GetEnvironmentVariable(System::String ^ variable);
public static string GetEnvironmentVariable(string variable);
public static string? GetEnvironmentVariable(string variable);
static member GetEnvironmentVariable : string -> string
Public Shared Function GetEnvironmentVariable (variable As String) As String
매개 변수
- variable
- String
환경 변수의 이름입니다.
반품
지정한 환경 변수 variable의 값이거나 null 환경 변수를 찾을 수 없는 경우입니다.
예외
variable은 null입니다.
호출자에게 이 작업을 수행하는 데 필요한 권한이 없습니다.
예제
다음 예제에서는 GetEnvironmentVariable 메서드를 사용하여 Windows 디렉터리의 경로를 포함하는 windir 환경 변수를 검색합니다.
using System;
using System.IO;
public class Example
{
public static void Main()
{
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
// Change the directory to %WINDIR%
Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir");
DirectoryInfo info = new DirectoryInfo(".");
Console.WriteLine("Directory Info: " + info.FullName);
}
else
{
Console.WriteLine("This example runs on Windows only.");
}
}
}
// The example displays output like the following on a .NET implementation running on Windows:
// Directory Info: C:\windows
// The example displays the following output on a .NET implementation on Unix-based systems:
// This example runs on Windows only.
open System
open System.IO
if Environment.OSVersion.Platform = PlatformID.Win32NT then
// Change the directory to %WINDIR%
Environment.CurrentDirectory <- Environment.GetEnvironmentVariable "windir"
let info = DirectoryInfo "."
printfn $"Directory Info: {info.FullName}"
else
printfn "This example runs on Windows only."
// The example displays output like the following on a .NET implementation running on Windows:
// Directory Info: C:\windows
// The example displays the following output on a .NET implementation on Unix-based systems:
// This example runs on Windows only.
Imports System.IO
Module Example
Public Sub Main()
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
' Change the directory to %WINDIR%
Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir")
Dim info As New DirectoryInfo(".")
Console.WriteLine("Directory Info: " + info.FullName)
Else
Console.WriteLine("This example runs on Windows only.")
End If
End Sub
End Module
' The example displays output like the following on a .NET implementation running on Windows:
' Directory Info: C:\windows
' The example displays the following output on a .NET implementation on Unix-based systems:
' This example runs on Windows only.
다음 예제에서는 프로세스 환경 블록에서 명명 Test1 된 환경 변수의 값을 검색하려고 시도합니다. 변수가 없으면 해당 변수를 만들고 해당 값을 검색합니다. 이 예제에서는 변수의 값을 표시합니다. 이 예제에서 변수를 만든 경우 열거형의 GetEnvironmentVariables(EnvironmentVariableTarget) 각 멤버를 사용하여 메서드를 호출 EnvironmentVariableTarget 하여 현재 프로세스 환경 블록에서만 변수를 검색할 수 있음을 설정합니다. 마지막으로, 예제에서 변수를 만든 경우 해당 변수를 삭제합니다.
using System;
public class Example
{
public static void Main()
{
string value;
bool toDelete = false;
// Check whether the environment variable exists.
value = Environment.GetEnvironmentVariable("Test1");
// If necessary, create it.
if (value == null)
{
Environment.SetEnvironmentVariable("Test1", "Value1");
toDelete = true;
// Now retrieve it.
value = Environment.GetEnvironmentVariable("Test1");
}
// Display the value.
Console.WriteLine($"Test1: {value}\n");
// Confirm that the value can only be retrieved from the process
// environment block if running on a Windows system.
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
Console.WriteLine("Attempting to retrieve Test1 from:");
foreach (EnvironmentVariableTarget enumValue in
Enum.GetValues(typeof(EnvironmentVariableTarget))) {
value = Environment.GetEnvironmentVariable("Test1", enumValue);
Console.WriteLine($" {enumValue}: {(value != null ? "found" : "not found")}");
}
Console.WriteLine();
}
// If we've created it, now delete it.
if (toDelete) {
Environment.SetEnvironmentVariable("Test1", null);
// Confirm the deletion.
if (Environment.GetEnvironmentVariable("Test1") == null)
Console.WriteLine("Test1 has been deleted.");
}
}
}
// The example displays the following output if run on a Windows system:
// Test1: Value1
//
// Attempting to retrieve Test1 from:
// Process: found
// User: not found
// Machine: not found
//
// Test1 has been deleted.
//
// The example displays the following output if run on a Unix-based system:
// Test1: Value1
//
// Test1 has been deleted.
module Example
open System
let mutable toDelete = false
// Check whether the environment variable exists.
let value =
let v = Environment.GetEnvironmentVariable "Test1"
// If necessary, create it.
if isNull v then
Environment.SetEnvironmentVariable("Test1", "Value1")
toDelete <- true
Environment.GetEnvironmentVariable "Test1"
else
v
// Display the value.
printfn $"Test1: {value}\n"
// Confirm that the value can only be retrieved from the process
// environment block if running on a Windows system.
if Environment.OSVersion.Platform = PlatformID.Win32NT then
printfn "Attempting to retrieve Test1 from:"
for enumValue in Enum.GetValues typeof<EnvironmentVariableTarget> do
let value = Environment.GetEnvironmentVariable("Test1", enumValue :?> EnvironmentVariableTarget)
printfn $""" {enumValue}: {if value <> null then "found" else "not found"}"""
printfn ""
// If we've created it, now delete it.
if toDelete then
Environment.SetEnvironmentVariable("Test1", null)
// Confirm the deletion.
if Environment.GetEnvironmentVariable "Test1" |> isNull then
printfn "Test1 has been deleted."
// The example displays the following output if run on a Windows system:
// Test1: Value1
//
// Attempting to retrieve Test1 from:
// Process: found
// User: not found
// Machine: not found
//
// Test1 has been deleted.
//
// The example displays the following output if run on a Unix-based system:
// Test1: Value1
//
// Test1 has been deleted.
Module Example
Public Sub Main()
Dim value As String
Dim toDelete As Boolean = False
' Check whether the environment variable exists.
value = Environment.GetEnvironmentVariable("Test1")
' If necessary, create it.
If value Is Nothing Then
Environment.SetEnvironmentVariable("Test1", "Value1")
toDelete = True
' Now retrieve it.
value = Environment.GetEnvironmentVariable("Test1")
End If
' Display the value.
Console.WriteLine($"Test1: {value}")
Console.WriteLine()
' Confirm that the value can only be retrieved from the process
' environment block if running on a Windows system.
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
Console.WriteLine("Attempting to retrieve Test1 from:")
For Each enumValue As EnvironmentVariableTarget In
[Enum].GetValues(GetType(EnvironmentVariableTarget))
value = Environment.GetEnvironmentVariable("Test1", enumValue)
Console.WriteLine($" {enumValue}: {If(value IsNot Nothing, "found", "not found")}")
Next
Console.WriteLine()
End If
' If we've created it, now delete it.
If toDelete Then
Environment.SetEnvironmentVariable("Test1", Nothing)
' Confirm the deletion.
If Environment.GetEnvironmentVariable("Test1") = Nothing Then
Console.WriteLine("Test1 has been deleted.")
End If
End If
End Sub
End Module
' The example displays the following output if run on a Windows system:
' Test1: Value1
'
' Attempting to retrieve Test1 from:
' Process: found
' User: not found
' Machine: not found
'
' Test1 has been deleted.
'
' The example displays the following output if run on a Unix-based system:
' Test1: Value1
'
' Test1 has been deleted.
설명
메서드는 GetEnvironmentVariable 현재 프로세스에서 환경 변수의 값을 검색합니다.
환경 변수 이름은 Unix와 유사한 시스템에서 대/소문자를 구분하지만 Windows에서는 대/소문자를 구분하지 않습니다.
비고
네이티브 라이브러리에서 수행한 In-Process 환경 수정은 관리되는 호출자가 볼 수 없습니다. 반대로, 관리되는 호출자가 수정한 내용은 네이티브 라이브러리에서 볼 수 없습니다.
GetEnvironmentVariable(String) 메서드
메서드는 GetEnvironmentVariable(String) 현재 프로세스의 환경 블록에서만 환경 변수를 검색합니다.
GetEnvironmentVariable(String, EnvironmentVariableTarget) 메서드를 target 값 EnvironmentVariableTarget.Process로 호출하는 것과 같습니다.
값과 함께 모든 환경 변수를 검색하려면 메서드를 호출합니다 GetEnvironmentVariables .
Windows 시스템에서
Windows 시스템에서 현재 프로세스의 환경 블록에는 다음이 포함됩니다.
해당 변수를 만든 부모 프로세스에서 제공하는 모든 환경 변수입니다. 예를 들어 콘솔 창에서 시작된 .NET 애플리케이션은 콘솔 창의 모든 환경 변수를 상속합니다.
부모 프로세스가 없는 경우 컴퓨터별 및 사용자별 환경 변수가 대신 사용됩니다. 예를 들어 새 콘솔 창에는 컴퓨터당 및 사용자별 환경 변수가 모두 시작되었을 때 정의됩니다.
프로세스가 실행되는 동안 SetEnvironmentVariable(String, String) 메서드 또는 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 메서드를
target값 EnvironmentVariableTarget.Process으로 호출하여 프로세스 블록에 추가된 모든 변수. 이러한 환경 변수는 .NET 애플리케이션이 종료될 때까지 유지됩니다.
프로세스가 시작된 후 환경 변수가 만들어지면, SetEnvironmentVariable(String, String) 메서드 또는 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 메서드를 target 값 .EnvironmentVariableTarget.Process로 호출하여 만들어진 변수만 이 메서드를 사용하여 검색할 수 있습니다.
Unix와 유사한 시스템에서
Unix와 유사한 시스템에서 현재 프로세스의 환경 블록에는 다음과 같은 환경 변수가 포함됩니다.
해당 변수를 만든 부모 프로세스에서 제공하는 모든 환경 변수입니다. 셸에서 시작된 .NET 애플리케이션의 경우 셸에 정의된 모든 환경 변수가 포함됩니다.
프로세스가 실행되는 동안 SetEnvironmentVariable(String, String) 메서드 또는 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 메서드를
target값 EnvironmentVariableTarget.Process으로 호출하여 프로세스 블록에 추가된 모든 변수. 이러한 환경 변수는 .NET 애플리케이션이 종료될 때까지 유지됩니다.
Unix와 유사한 시스템의 .NET은 컴퓨터별 또는 사용자별 환경 변수를 지원하지 않습니다.
GetEnvironmentVariable(String, EnvironmentVariableTarget) 메서드
값과 함께 모든 환경 변수를 검색하려면 메서드를 호출합니다 GetEnvironmentVariables .
Windows 시스템에서
Windows에서 target 매개 변수는 환경 변수가 현재 프로세스에서 검색되는지 아니면 현재 사용자 또는 로컬 컴퓨터에 대한 Windows 운영 체제 레지스트리 키에서 검색되는지 여부를 지정합니다. 모든 사용자별 및 컴퓨터별 환경 변수는 .NET 프로세스를 만든 부모 프로세스에서 사용할 수 있는 다른 환경 변수와 마찬가지로 현재 프로세스의 환경 블록에 자동으로 복사됩니다. 현재 프로세스의 환경 블록에 SetEnvironmentVariable(String, String) 메서드나 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 메서드를 target 값 EnvironmentVariableTarget.Process으로 호출하여 추가된 환경 변수는 프로세스 실행 중에만 지속됩니다.
Unix와 유사한 시스템에서
Unix와 유사한 시스템에서는 메서드가 오직 GetEnvironmentVariable(String, EnvironmentVariableTarget)target 값만 지원합니다.
target값이 EnvironmentVariableTarget.Machine 또는 EnvironmentVariableTarget.User인 호출은 지원되지 않으며 null을 반환합니다.
프로세스별 환경 변수는 다음과 같습니다.
부모 프로세스에서 상속된 항목에는
dotnet.exe를 소환하거나 .NET 애플리케이션을 시작하는 데 사용되는 셸 등이 있습니다.SetEnvironmentVariable(String, String) 값이 SetEnvironmentVariable(String, String, EnvironmentVariableTarget)일 때,
target메서드 또는 EnvironmentVariableTarget.Process 메서드를 호출하여 정의된 것입니다. 이러한 환경 변수는 프로세스 또는 .NET 애플리케이션이 종료될 때까지dotnet만 유지됩니다.
추가 정보
적용 대상
GetEnvironmentVariable(String, EnvironmentVariableTarget)
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
현재 프로세스 또는 현재 사용자 또는 로컬 컴퓨터에 대한 Windows 운영 체제 레지스트리 키에서 환경 변수의 값을 검색합니다.
public:
static System::String ^ GetEnvironmentVariable(System::String ^ variable, EnvironmentVariableTarget target);
public static string? GetEnvironmentVariable(string variable, EnvironmentVariableTarget target);
public static string GetEnvironmentVariable(string variable, EnvironmentVariableTarget target);
static member GetEnvironmentVariable : string * EnvironmentVariableTarget -> string
Public Shared Function GetEnvironmentVariable (variable As String, target As EnvironmentVariableTarget) As String
매개 변수
- variable
- String
환경 변수의 이름입니다.
- target
- EnvironmentVariableTarget
값 중 EnvironmentVariableTarget 하나입니다. Unix와 유사한 시스템에서 실행되는 .NET Process만 지원됩니다.
반품
및 variable 매개 변수로 지정된 환경 변수의 target 값이거나 null 환경 변수를 찾을 수 없는 경우입니다.
예외
variable은 null입니다.
target 가 유효한 EnvironmentVariableTarget 값이 아닌 경우
호출자에게 이 작업을 수행하는 데 필요한 권한이 없습니다.
예제
다음 예제에서는 , EnvironmentVariableTarget.Process및 EnvironmentVariableTarget.User 대상에 대한 Machine환경 변수를 만들고 운영 체제 레지스트리에 사용자 및 컴퓨터 환경 변수가 포함되어 있는지 확인한 다음 환경 변수를 삭제합니다. Unix와 유사한 시스템의 .NET 사용자별 및 컴퓨터별 환경 변수를 지원하지 않으므로 SetEnvironmentVariable(String, String) 및 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 값이 EnvironmentVariableTarget.Process 환경 변수를 프로세스 환경 블록에 성공적으로 저장합니다.
using System;
using System.Collections;
using Microsoft.Win32;
class Sample
{
public static void Main()
{
// Environment variable names for default, process, user, and machine targets.
string defaultEnvVar = nameof(defaultEnvVar);
string processEnvVar = nameof(processEnvVar);
string userEnvVar = nameof(userEnvVar);
string machineEnvVar = nameof(machineEnvVar);
string dft = nameof(dft);
string process = nameof(process);
string user = nameof(user);
string machine = nameof(machine);
// Set the environment variable for each target.
Console.WriteLine("Setting environment variables for each target...\n");
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, dft);
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, process,
EnvironmentVariableTarget.Process);
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, user,
EnvironmentVariableTarget.User);
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, machine,
EnvironmentVariableTarget.Machine);
// Define an array of environment variables.
string[] envVars = { defaultEnvVar,processEnvVar, userEnvVar, machineEnvVar };
// Try to get the environment variables from each target.
// The default (no specified target).
Console.WriteLine("Retrieving environment variables from the default target:");
foreach (var envVar in envVars)
{
var value = Environment.GetEnvironmentVariable(envVar) ?? "(none)";
Console.WriteLine($" {envVar}: {value}");
}
// The process block.
Console.WriteLine("\nRetrieving environment variables from the Process target:");
foreach (var envVar in envVars)
{
var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process) ?? "(none)";
Console.WriteLine($" {envVar}: {value}");
}
// The user block.
Console.WriteLine("\nRetrieving environment variables from the User target:");
foreach (var envVar in envVars)
{
var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User) ?? "(none)";
Console.WriteLine($" {envVar}: {value}");
}
// The machine block.
Console.WriteLine("\nRetrieving environment variables from the Machine target:");
foreach (var envVar in envVars)
{
var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine) ?? "(none)";
Console.WriteLine($" {envVar}: {value}");
}
// Delete the environment variable for each target.
Console.WriteLine("\nDeleting environment variables for each target...\n");
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, null);
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, null,
EnvironmentVariableTarget.Process);
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, null,
EnvironmentVariableTarget.User);
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, null,
EnvironmentVariableTarget.Machine);
}
}
// The example displays the following output if run on a Windows system:
// Setting environment variables for each target...
//
// Retrieving environment variables from the default target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the Process target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the User target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the Machine target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: machine
//
// Deleting environment variables for each target...
//
// The example displays the following output if run on a Unix-based system:
//
// Setting environment variables for each target...
//
// Retrieving environment variables from the default target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the Process target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the User target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the Machine target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Deleting environment variables for each target...
module Sample
open System
// Environment variable names for default, process, user, and machine targets.
let rec defaultEnvVar = nameof defaultEnvVar
let rec processEnvVar = nameof processEnvVar
let rec userEnvVar = nameof userEnvVar
let rec machineEnvVar = nameof machineEnvVar
let rec dft = nameof dft
let rec proc = nameof proc
let rec user = nameof user
let rec machine = nameof machine
// Set the environment variable for each target.
printfn "Setting environment variables for each target...\n"
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, dft)
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, proc, EnvironmentVariableTarget.Process)
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, user, EnvironmentVariableTarget.User)
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, machine, EnvironmentVariableTarget.Machine)
// Define a list of environment variables.
let envVars = [ defaultEnvVar; processEnvVar; userEnvVar; machineEnvVar ]
// Try to get the environment variables from each target.
// The default (no specified target).
printfn "Retrieving environment variables from the default target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable envVar with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The process block.
printfn "\nRetrieving environment variables from the Process target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The user block.
printfn "\nRetrieving environment variables from the User target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The machine block.
printfn "\nRetrieving environment variables from the Machine target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// Delete the environment variable for each target.
printfn "\nDeleting environment variables for each target...\n"
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, null)
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, null, EnvironmentVariableTarget.Process)
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, null, EnvironmentVariableTarget.User)
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, null, EnvironmentVariableTarget.Machine)
// The example displays the following output if run on a Windows system:
// Setting environment variables for each target...
//
// Retrieving environment variables from the default target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the Process target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the User target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the Machine target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: machine
//
// Deleting environment variables for each target...
//
// The example displays the following output if run on a Unix-based system:
//
// Setting environment variables for each target...
//
// Retrieving environment variables from the default target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the Process target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the User target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the Machine target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Deleting environment variables for each target...
Imports System.Collections
Imports Microsoft.Win32
Module Sample
Public Sub Main()
' Environment variable names for default, process, user, and machine targets.
Dim defaultEnvVar As String = NameOf(defaultEnvVar)
Dim processEnvVar As String = NameOf(processEnvVar)
Dim userEnvVar As String = NameOf(userEnvVar)
Dim machineEnvVar As String = NameOf(machineEnvVar)
Dim dft As String = NameOf(dft)
Dim process As String = NameOf(process)
Dim user As String = NameOf(user)
Dim machine As String = NameOf(machine)
' Set the environment variable for each target.
Console.WriteLine("Setting environment variables for each target...")
' The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, dft)
' The current process.
Environment.SetEnvironmentVariable(processEnvVar, process,
EnvironmentVariableTarget.Process)
' The current user.
Environment.SetEnvironmentVariable(userEnvVar, user,
EnvironmentVariableTarget.User)
' The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, machine,
EnvironmentVariableTarget.Machine)
Console.WriteLine()
' Define an array of environment variables.
Dim envVars As String() = { defaultEnvVar, processEnvVar, userEnvVar, machineEnvVar }
' Try to get the environment variables from each target.
' The default (no specified target).
Console.WriteLine("Retrieving environment variables from the default target:")
For Each envVar in envVars
Dim value = Environment.GetEnvironmentVariable(envVar)
Console.WriteLine($" {envVar}: {If(value IsNot Nothing, value, "(none)")}")
Next
Console.WriteLine()
' The process block.
Console.WriteLine("Retrieving environment variables from the Process target:")
For Each envVar in envVars
Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process)
Console.WriteLine($" {envVar}: {If(value IsNot Nothing, value, "(none)")}")
Next
Console.WriteLine()
' The user block.
Console.WriteLine("Retrieving environment variables from the User target:")
For Each envVar in envVars
Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User)
Console.WriteLine($" {envVar}: {value}")
Next
Console.WriteLine()
' The machine block.
Console.WriteLine("Retrieving environment variables from the Machine target:")
For Each envVar in envVars
Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine)
Console.WriteLine($" {envVar}: {value}")
Next
Console.WriteLine()
' Delete the environment variable for each target.
Console.WriteLine("Deleting environment variables for each target...")
' The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, Nothing)
' The current process.
Environment.SetEnvironmentVariable(processEnvVar, Nothing,
EnvironmentVariableTarget.Process)
' The current user.
Environment.SetEnvironmentVariable(userEnvVar, Nothing,
EnvironmentVariableTarget.User)
' The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, Nothing,
EnvironmentVariableTarget.Machine)
End Sub
End Module
' The example displays the following output if run on a Windows system:
' Setting environment variables for each target...
'
' Retrieving environment variables from the default target:
' defaultEnvVar: dft
' processEnvVar: process
' userEnvVar: user
' machineEnvVar: (none)
'
' Retrieving environment variables from the Process target:
' defaultEnvVar: dft
' processEnvVar: process
' userEnvVar: user
' machineEnvVar: (none)
'
' Retrieving environment variables from the User target:
' defaultEnvVar: (none)
' processEnvVar: (none)
' userEnvVar: user
' machineEnvVar: (none)
'
' Retrieving environment variables from the Machine target:
' defaultEnvVar: (none)
' processEnvVar: (none)
' userEnvVar: (none)
' machineEnvVar: machine
'
' Deleting environment variables for each target...
'
' The example displays the following output if run on a Unix-based system:
'
' Setting environment variables for each target...
'
' Retrieving environment variables from the default target:
' defaultEnvVar: dft
' processEnvVar: process
' userEnvVar: (none)
' machineEnvVar: (none)
'
' Retrieving environment variables from the Process target:
' defaultEnvVar: dft
' processEnvVar: process
' userEnvVar: (none)
' machineEnvVar: (none)
'
' Retrieving environment variables from the User target:
' defaultEnvVar: (none)
' processEnvVar: (none)
' userEnvVar: (none)
' machineEnvVar: (none)
'
' Retrieving environment variables from the Machine target:
' defaultEnvVar: (none)
' processEnvVar: (none)
' userEnvVar: (none)
' machineEnvVar: (none)
'
' Deleting environment variables for each target...
설명
메서드는 GetEnvironmentVariable 현재 프로세스에서 환경 변수의 값을 검색합니다.
환경 변수 이름은 Unix와 유사한 시스템에서 대/소문자를 구분하지만 Windows에서는 대/소문자를 구분하지 않습니다.
비고
네이티브 라이브러리에서 수행한 In-Process 환경 수정은 관리되는 호출자가 볼 수 없습니다. 반대로, 관리되는 호출자가 수정한 내용은 네이티브 라이브러리에서 볼 수 없습니다.
GetEnvironmentVariable(String) 메서드
메서드는 GetEnvironmentVariable(String) 현재 프로세스의 환경 블록에서만 환경 변수를 검색합니다.
GetEnvironmentVariable(String, EnvironmentVariableTarget) 메서드를 target 값 EnvironmentVariableTarget.Process로 호출하는 것과 같습니다.
값과 함께 모든 환경 변수를 검색하려면 메서드를 호출합니다 GetEnvironmentVariables .
Windows 시스템에서
Windows 시스템에서 현재 프로세스의 환경 블록에는 다음이 포함됩니다.
해당 변수를 만든 부모 프로세스에서 제공하는 모든 환경 변수입니다. 예를 들어 콘솔 창에서 시작된 .NET 애플리케이션은 콘솔 창의 모든 환경 변수를 상속합니다.
부모 프로세스가 없는 경우 컴퓨터별 및 사용자별 환경 변수가 대신 사용됩니다. 예를 들어 새 콘솔 창에는 컴퓨터당 및 사용자별 환경 변수가 모두 시작되었을 때 정의됩니다.
프로세스가 실행되는 동안 SetEnvironmentVariable(String, String) 메서드 또는 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 메서드를
target값 EnvironmentVariableTarget.Process으로 호출하여 프로세스 블록에 추가된 모든 변수. 이러한 환경 변수는 .NET 애플리케이션이 종료될 때까지 유지됩니다.
프로세스가 시작된 후 환경 변수가 만들어지면, SetEnvironmentVariable(String, String) 메서드 또는 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 메서드를 target 값 .EnvironmentVariableTarget.Process로 호출하여 만들어진 변수만 이 메서드를 사용하여 검색할 수 있습니다.
Unix와 유사한 시스템에서
Unix와 유사한 시스템에서 현재 프로세스의 환경 블록에는 다음과 같은 환경 변수가 포함됩니다.
해당 변수를 만든 부모 프로세스에서 제공하는 모든 환경 변수입니다. 셸에서 시작된 .NET 애플리케이션의 경우 셸에 정의된 모든 환경 변수가 포함됩니다.
프로세스가 실행되는 동안 SetEnvironmentVariable(String, String) 메서드 또는 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 메서드를
target값 EnvironmentVariableTarget.Process으로 호출하여 프로세스 블록에 추가된 모든 변수. 이러한 환경 변수는 .NET 애플리케이션이 종료될 때까지 유지됩니다.
Unix와 유사한 시스템의 .NET은 컴퓨터별 또는 사용자별 환경 변수를 지원하지 않습니다.
GetEnvironmentVariable(String, EnvironmentVariableTarget) 메서드
값과 함께 모든 환경 변수를 검색하려면 메서드를 호출합니다 GetEnvironmentVariables .
Windows 시스템에서
Windows에서 target 매개 변수는 환경 변수가 현재 프로세스에서 검색되는지 아니면 현재 사용자 또는 로컬 컴퓨터에 대한 Windows 운영 체제 레지스트리 키에서 검색되는지 여부를 지정합니다. 모든 사용자별 및 컴퓨터별 환경 변수는 .NET 프로세스를 만든 부모 프로세스에서 사용할 수 있는 다른 환경 변수와 마찬가지로 현재 프로세스의 환경 블록에 자동으로 복사됩니다. 현재 프로세스의 환경 블록에 SetEnvironmentVariable(String, String) 메서드나 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 메서드를 target 값 EnvironmentVariableTarget.Process으로 호출하여 추가된 환경 변수는 프로세스 실행 중에만 지속됩니다.
Unix와 유사한 시스템에서
Unix와 유사한 시스템에서는 메서드가 오직 GetEnvironmentVariable(String, EnvironmentVariableTarget)target 값만 지원합니다.
target값이 EnvironmentVariableTarget.Machine 또는 EnvironmentVariableTarget.User인 호출은 지원되지 않으며 null을 반환합니다.
프로세스별 환경 변수는 다음과 같습니다.
부모 프로세스에서 상속된 항목에는
dotnet.exe를 소환하거나 .NET 애플리케이션을 시작하는 데 사용되는 셸 등이 있습니다.SetEnvironmentVariable(String, String) 값이 SetEnvironmentVariable(String, String, EnvironmentVariableTarget)일 때,
target메서드 또는 EnvironmentVariableTarget.Process 메서드를 호출하여 정의된 것입니다. 이러한 환경 변수는 프로세스 또는 .NET 애플리케이션이 종료될 때까지dotnet만 유지됩니다.
추가 정보
- SetEnvironmentVariable(String, String, EnvironmentVariableTarget)
- GetEnvironmentVariables()
- EnvironmentVariableTarget