İngilizce dilinde oku

Aracılığıyla paylaş


Environment.GetEnvironmentVariable Yöntem

Tanım

Ortam değişkeninin değerini alır.

Aşırı Yüklemeler

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

Geçerli işlemden bir ortam değişkeninin değerini alır.

C#
public static string GetEnvironmentVariable (string variable);
C#
public static string? GetEnvironmentVariable (string variable);

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 değeridir.

Çağrı yapanın bu işlemi gerçekleştirmek için gerekli izni yok.

Örnekler

Aşağıdaki örnek, Windows dizininin windir yolunu içeren ortam değişkenini almak için yöntemini kullanırGetEnvironmentVariable.

C#
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.

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 değişkeni 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 siler.

C#
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.

Açıklamalar

Bu API hakkında daha fazla bilgi için bkz. Environment.GetEnvironmentVariable için ek API açıklamaları.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

GetEnvironmentVariable(String, EnvironmentVariableTarget)

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.

C#
public static string? GetEnvironmentVariable (string variable, EnvironmentVariableTarget target);
C#
public static string GetEnvironmentVariable (string variable, EnvironmentVariableTarget target);

Parametreler

variable
String

Ortam değişkeninin adı.

target
EnvironmentVariableTarget

Değerlerden EnvironmentVariableTarget biri. Yalnızca Process Unix benzeri sistemlerde çalışan .NET'te desteklenir.

Döndürülenler

ve target parametreleri tarafından belirtilen ortam değişkeninin variable değeri veya null ortam değişkeni bulunamazsa.

Özel durumlar

variable, null değeridir.

target geçerli EnvironmentVariableTarget bir değer değil.

Çağrı yapanın bu işlemi gerçekleştirmek için gerekli izni yok.

Örnekler

Aşağıdaki örnek , EnvironmentVariableTarget.Userve hedefleri için EnvironmentVariableTarget.Processortam 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) ve SetEnvironmentVariable(String, String, EnvironmentVariableTarget) değeri bir ortam değişkenini EnvironmentVariableTarget.Process işlem ortamı bloğuna başarıyla depolar.

C#
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...

Açıklamalar

Bu API hakkında daha fazla bilgi için bkz. Environment.GetEnvironmentVariable için ek API açıklamaları.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1