Environment.GetEnvironmentVariable Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Ortam değişkeninin değerini alır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| GetEnvironmentVariable(String) |
Geçerli işlemden bir ortam değişkeninin değerini alır. |
| GetEnvironmentVariable(String, EnvironmentVariableTarget) |
Bir ortam değişkeninin değerini geçerli işlemden veya geçerli kullanıcı veya yerel makine için Windows işletim sistemi kayıt defteri anahtarından alır. |
GetEnvironmentVariable(String)
- Kaynak:
- Environment.cs
- Kaynak:
- Environment.cs
- Kaynak:
- Environment.cs
- Kaynak:
- Environment.cs
- Kaynak:
- Environment.cs
Geçerli işlemden bir ortam değişkeninin değerini alır.
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
Parametreler
- variable
- String
Ortam değişkeninin adı.
Döndürülenler
tarafından variablebelirtilen ortam değişkeninin değeri veya null ortam değişkeni bulunamazsa.
Özel durumlar
variable, null'e eşittir.
Çağıranın bu işlemi gerçekleştirmek için gerekli izni yok.
Örnekler
Aşağıdaki örnek, Windows dizininin yolunu içeren GetEnvironmentVariable ortam değişkenini almak için windir yöntemini kullanır.
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.
Aşağıdaki örnek, işlem ortamı bloğundan adlı Test1 bir ortam değişkeninin değerini almayı dener. Değişken yoksa, örnek bunu oluşturur ve değerini alır. Örnekte değişkenin değeri görüntülenir. Örnek değişkeni oluşturduysa, değişkenin GetEnvironmentVariables(EnvironmentVariableTarget) yalnızca geçerli işlem ortamı bloğundan alınabileceğini kurmak için numaralandırmanın her üyesiyle EnvironmentVariableTarget yöntemini de çağırır. Son olarak, örnek değişkeni oluşturduysa, bu değişkeni siler.
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.
Açıklamalar
yöntemi, GetEnvironmentVariable geçerli işlemden bir ortam değişkeninin değerini alır.
Ortam değişkeni adları Unix benzeri sistemlerde büyük/küçük harfe duyarlıdır ancak Windows'da büyük/küçük harfe duyarlı değildir.
Note
Yerel yazılım kitaplıkları tarafından yapılan işlem sürecindeki ortam değişiklikleri, yönetilen arayanlar tarafından görülmez. Buna karşılık, yönetilen arayanlar tarafından yapılan bu tür değişiklikler yerel kütüphaneler tarafından algılanmaz.
GetEnvironmentVariable(String) yöntemi
GetEnvironmentVariable(String) yöntemi, yalnızca geçerli işlemin ortam bloğundan bir ortam değişkeni alır.
GetEnvironmentVariable(String, EnvironmentVariableTarget) değeriyle target ile EnvironmentVariableTarget.Process yöntemini çağırmaya eşdeğerdir.
Tüm ortam değişkenlerini değerleriyle birlikte almak için yöntemini çağırın GetEnvironmentVariables .
Windows sistemlerinde
Windows sistemlerinde geçerli işlemin ortam bloğu şunları içerir:
Bunu oluşturan üst işlem tarafından ona sağlanan tüm ortam değişkenleri. Örneğin, konsol penceresinden başlatılan bir .NET uygulaması, konsol penceresinin tüm ortam değişkenlerini devralır.
Üst işlem yoksa, bunun yerine makine başına ve kullanıcı başına ortam değişkenleri kullanılır. Örneğin, yeni bir konsol penceresinde makine başına ve kullanıcı başına ortam değişkenleri başlatıldığında tanımlanmıştır.
Bir işlem çalışırken, ya SetEnvironmentVariable(String, String) yöntemini çağırarak ya da SetEnvironmentVariable(String, String, EnvironmentVariableTarget) değerini
targetiçeren EnvironmentVariableTarget.Process yöntemini çağırarak işlem bloğuna eklenen tüm değişkenler. Bu ortam değişkenleri .NET uygulaması sonlandırana kadar devam eder.
İşlem başlatıldıktan sonra ortam değişkenleri oluşturulursa, yalnızca SetEnvironmentVariable(String, String) yöntemini veya SetEnvironmentVariable(String, String, EnvironmentVariableTarget) yöntemini target değeri EnvironmentVariableTarget.Process olan şekilde çağırarak oluşturulan değişkenleri almak için bu yöntemi kullanabilirsiniz.
Unix benzeri sistemlerde
Unix benzeri sistemlerde, geçerli işlemin ortam bloğu aşağıdaki ortam değişkenlerini içerir:
Bunu oluşturan üst işlem tarafından ona sağlanan tüm ortam değişkenleri. Bir kabuktan başlatılan .NET uygulamaları için bu, kabukta tanımlanan tüm ortam değişkenlerini içerir.
Bir işlem çalışırken, ya SetEnvironmentVariable(String, String) yöntemini çağırarak ya da SetEnvironmentVariable(String, String, EnvironmentVariableTarget) değerini
targetiçeren EnvironmentVariableTarget.Process yöntemini çağırarak işlem bloğuna eklenen tüm değişkenler. Bu ortam değişkenleri .NET uygulaması sonlandırana kadar devam eder.
Unix benzeri sistemlerde .NET, makine başına veya kullanıcı başına ortam değişkenlerini desteklemez.
GetEnvironmentVariable(String, EnvironmentVariableTarget) yöntemi
Tüm ortam değişkenlerini değerleriyle birlikte almak için yöntemini çağırın GetEnvironmentVariables .
Windows sistemlerinde
Windows'da parametresi, target ortam değişkeninin geçerli işlemden mi yoksa geçerli kullanıcı veya yerel makine için Windows işletim sistemi kayıt defteri anahtarından mı alındığını belirtir. Tüm kullanıcı başına ve makine başına ortam değişkenleri, .NET işlemini oluşturan üst işlem için kullanılabilen diğer ortam değişkenleri gibi geçerli işlemin ortam bloğuna otomatik olarak kopyalanır. Ancak, SetEnvironmentVariable(String, String) veya SetEnvironmentVariable(String, String, EnvironmentVariableTarget) yöntemi target değeri EnvironmentVariableTarget.Process ile çağrılarak yalnızca geçerli işlemin ortam bloğuna eklenen ortam değişkenleri, yalnızca işlem süresi boyunca kalıcı hale gelir.
Unix benzeri sistemlerde
Unix benzeri sistemlerde GetEnvironmentVariable(String, EnvironmentVariableTarget) yöntemi yalnızca target değerini EnvironmentVariableTarget.Process destekler.
target değeri olarak EnvironmentVariableTarget.Machine veya EnvironmentVariableTarget.User olan çağrılar desteklenmez ve null döndürür.
İşlem başına ortam değişkenleri şunlardır:
Üst süreçten devralınanlar, genellikle .NET uygulamasını başlatmak veya
dotnet.exeçalıştırmak için kullanılan kabuktur.SetEnvironmentVariable(String, String) değeriyle SetEnvironmentVariable(String, String, EnvironmentVariableTarget) veya
targetyöntemi çağrılarak tanımlananlar EnvironmentVariableTarget.Process. Bu ortam değişkenleri yalnızca işlem veya .NET uygulaması sonlandırana kadardotnetkalır.
Ayrıca bkz.
Şunlara uygulanır
GetEnvironmentVariable(String, EnvironmentVariableTarget)
- Kaynak:
- Environment.cs
- Kaynak:
- Environment.cs
- Kaynak:
- Environment.cs
- Kaynak:
- Environment.cs
- Kaynak:
- Environment.cs
Bir ortam değişkeninin değerini geçerli işlemden veya geçerli kullanıcı veya yerel makine için Windows işletim sistemi kayıt defteri anahtarından alır.
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
Parametreler
- variable
- String
Ortam değişkeninin adı.
- target
- EnvironmentVariableTarget
Değerlerden EnvironmentVariableTarget biri. Unix benzeri sistemlerde çalışan .NET yalnızca Process desteklenir.
Döndürülenler
ve variable parametreleri tarafından belirtilen ortam değişkeninin target değeri veya null ortam değişkeni bulunamazsa.
Özel durumlar
variable, null'e eşittir.
target geçerli EnvironmentVariableTarget bir değer değil.
Çağıranın bu işlemi gerçekleştirmek için gerekli izni yok.
Örnekler
Aşağıdaki örnek , EnvironmentVariableTarget.Processve hedefleri için EnvironmentVariableTarget.Userortam değişkenleri oluşturur, işletim sistemi kayıt defterinin kullanıcı ve Machine makine ortamı değişkenlerini içerip içermediğini denetler, ardından ortam değişkenlerini siler. Unix benzeri sistemlerde .NET kullanıcı başına ve makine başına ortam değişkenlerini desteklemediğinden, yalnızca SetEnvironmentVariable(String, String) değerine sahip SetEnvironmentVariable(String, String, EnvironmentVariableTarget) ve EnvironmentVariableTarget.Process bir ortam değişkenini işlem ortamı bloğuna başarıyla depolar.
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...
Açıklamalar
yöntemi, GetEnvironmentVariable geçerli işlemden bir ortam değişkeninin değerini alır.
Ortam değişkeni adları Unix benzeri sistemlerde büyük/küçük harfe duyarlıdır ancak Windows'da büyük/küçük harfe duyarlı değildir.
Note
Yerel yazılım kitaplıkları tarafından yapılan işlem sürecindeki ortam değişiklikleri, yönetilen arayanlar tarafından görülmez. Buna karşılık, yönetilen arayanlar tarafından yapılan bu tür değişiklikler yerel kütüphaneler tarafından algılanmaz.
GetEnvironmentVariable(String) yöntemi
GetEnvironmentVariable(String) yöntemi, yalnızca geçerli işlemin ortam bloğundan bir ortam değişkeni alır.
GetEnvironmentVariable(String, EnvironmentVariableTarget) değeriyle target ile EnvironmentVariableTarget.Process yöntemini çağırmaya eşdeğerdir.
Tüm ortam değişkenlerini değerleriyle birlikte almak için yöntemini çağırın GetEnvironmentVariables .
Windows sistemlerinde
Windows sistemlerinde geçerli işlemin ortam bloğu şunları içerir:
Bunu oluşturan üst işlem tarafından ona sağlanan tüm ortam değişkenleri. Örneğin, konsol penceresinden başlatılan bir .NET uygulaması, konsol penceresinin tüm ortam değişkenlerini devralır.
Üst işlem yoksa, bunun yerine makine başına ve kullanıcı başına ortam değişkenleri kullanılır. Örneğin, yeni bir konsol penceresinde makine başına ve kullanıcı başına ortam değişkenleri başlatıldığında tanımlanmıştır.
Bir işlem çalışırken, ya SetEnvironmentVariable(String, String) yöntemini çağırarak ya da SetEnvironmentVariable(String, String, EnvironmentVariableTarget) değerini
targetiçeren EnvironmentVariableTarget.Process yöntemini çağırarak işlem bloğuna eklenen tüm değişkenler. Bu ortam değişkenleri .NET uygulaması sonlandırana kadar devam eder.
İşlem başlatıldıktan sonra ortam değişkenleri oluşturulursa, yalnızca SetEnvironmentVariable(String, String) yöntemini veya SetEnvironmentVariable(String, String, EnvironmentVariableTarget) yöntemini target değeri EnvironmentVariableTarget.Process olan şekilde çağırarak oluşturulan değişkenleri almak için bu yöntemi kullanabilirsiniz.
Unix benzeri sistemlerde
Unix benzeri sistemlerde, geçerli işlemin ortam bloğu aşağıdaki ortam değişkenlerini içerir:
Bunu oluşturan üst işlem tarafından ona sağlanan tüm ortam değişkenleri. Bir kabuktan başlatılan .NET uygulamaları için bu, kabukta tanımlanan tüm ortam değişkenlerini içerir.
Bir işlem çalışırken, ya SetEnvironmentVariable(String, String) yöntemini çağırarak ya da SetEnvironmentVariable(String, String, EnvironmentVariableTarget) değerini
targetiçeren EnvironmentVariableTarget.Process yöntemini çağırarak işlem bloğuna eklenen tüm değişkenler. Bu ortam değişkenleri .NET uygulaması sonlandırana kadar devam eder.
Unix benzeri sistemlerde .NET, makine başına veya kullanıcı başına ortam değişkenlerini desteklemez.
GetEnvironmentVariable(String, EnvironmentVariableTarget) yöntemi
Tüm ortam değişkenlerini değerleriyle birlikte almak için yöntemini çağırın GetEnvironmentVariables .
Windows sistemlerinde
Windows'da parametresi, target ortam değişkeninin geçerli işlemden mi yoksa geçerli kullanıcı veya yerel makine için Windows işletim sistemi kayıt defteri anahtarından mı alındığını belirtir. Tüm kullanıcı başına ve makine başına ortam değişkenleri, .NET işlemini oluşturan üst işlem için kullanılabilen diğer ortam değişkenleri gibi geçerli işlemin ortam bloğuna otomatik olarak kopyalanır. Ancak, SetEnvironmentVariable(String, String) veya SetEnvironmentVariable(String, String, EnvironmentVariableTarget) yöntemi target değeri EnvironmentVariableTarget.Process ile çağrılarak yalnızca geçerli işlemin ortam bloğuna eklenen ortam değişkenleri, yalnızca işlem süresi boyunca kalıcı hale gelir.
Unix benzeri sistemlerde
Unix benzeri sistemlerde GetEnvironmentVariable(String, EnvironmentVariableTarget) yöntemi yalnızca target değerini EnvironmentVariableTarget.Process destekler.
target değeri olarak EnvironmentVariableTarget.Machine veya EnvironmentVariableTarget.User olan çağrılar desteklenmez ve null döndürür.
İşlem başına ortam değişkenleri şunlardır:
Üst süreçten devralınanlar, genellikle .NET uygulamasını başlatmak veya
dotnet.exeçalıştırmak için kullanılan kabuktur.SetEnvironmentVariable(String, String) değeriyle SetEnvironmentVariable(String, String, EnvironmentVariableTarget) veya
targetyöntemi çağrılarak tanımlananlar EnvironmentVariableTarget.Process. Bu ortam değişkenleri yalnızca işlem veya .NET uygulaması sonlandırana kadardotnetkalır.
Ayrıca bkz.
- SetEnvironmentVariable(String, String, EnvironmentVariableTarget)
- GetEnvironmentVariables()
- EnvironmentVariableTarget