Bagikan melalui


Environment.SetEnvironmentVariable Metode

Definisi

Membuat, memodifikasi, atau menghapus variabel lingkungan.

Overload

SetEnvironmentVariable(String, String)

Membuat, memodifikasi, atau menghapus variabel lingkungan yang disimpan dalam proses saat ini.

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Membuat, memodifikasi, atau menghapus variabel lingkungan yang disimpan dalam proses saat ini atau di kunci registri sistem operasi Windows yang dicadangkan untuk pengguna atau komputer lokal saat ini.

SetEnvironmentVariable(String, String)

Sumber:
Environment.cs
Sumber:
Environment.cs
Sumber:
Environment.cs

Membuat, memodifikasi, atau menghapus variabel lingkungan yang disimpan dalam proses saat ini.

public:
 static void SetEnvironmentVariable(System::String ^ variable, System::String ^ value);
public static void SetEnvironmentVariable (string variable, string value);
public static void SetEnvironmentVariable (string variable, string? value);
static member SetEnvironmentVariable : string * string -> unit
Public Shared Sub SetEnvironmentVariable (variable As String, value As String)

Parameter

variable
String

Nama variabel lingkungan.

value
String

Nilai yang akan ditetapkan ke variable.

Pengecualian

variable null.

variable berisi string panjang nol, karakter nol heksadesimal awal (0x00), atau tanda sama dengan ("=").

-atau-

Panjang variable atau value lebih besar dari atau sama dengan 32.767 karakter.

-atau-

Terjadi kesalahan selama eksekusi operasi ini.

Pemanggil tidak memiliki izin yang diperlukan untuk melakukan operasi ini.

Contoh

Contoh berikut mencoba mengambil nilai variabel lingkungan bernama Test1 dari blok lingkungan proses. Jika variabel tidak ada, contoh membuat variabel dan mengambil nilainya. Contoh menampilkan nilai variabel. Untuk implementasi .NET yang berjalan pada sistem Windows, ini juga memanggil metode GetEnvironmentVariables(EnvironmentVariableTarget) dengan setiap anggota enumerasi EnvironmentVariableTarget untuk menetapkan bahwa variabel hanya dapat diambil dari blok lingkungan proses saat ini. (Implementasi.NET pada sistem seperti Unix hanya mendukung variabel dalam blok lingkungan proses.) Terakhir, jika contoh membuat variabel, itu akan menghapusnya.

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.

Keterangan

Memanggil metode ini setara dengan memanggil kelebihan beban SetEnvironmentVariable(String, String, EnvironmentVariableTarget) dengan nilai EnvironmentVariableTarget.Process untuk argumen target.

Pada sistem seperti Unix, panggilan ke metode SetEnvironmentVariable(String, String) tidak berpengaruh pada pustaka asli apa pun yang, atau akan dimuat. (Sebaliknya, modifikasi lingkungan dalam proses yang dibuat oleh pustaka asli tidak dilihat oleh pemanggil terkelola.)

Jika argumen value tidak null dan variabel lingkungan yang dinamai oleh parameter variable tidak ada, variabel lingkungan dibuat dan diberi konten value. Jika memang ada, nilainya dimodifikasi. Karena variabel lingkungan didefinisikan dalam blok lingkungan dari proses saat ini saja, variabel tersebut tidak bertahan setelah proses berakhir.

Jika variable berisi karakter nol heksadesimal non-awal, karakter sebelum karakter nol dianggap sebagai nama variabel lingkungan dan semua karakter berikutnya diabaikan.

Jika value berisi karakter nol heksadesimal non-awal, karakter sebelum karakter nol ditetapkan ke variabel lingkungan dan semua karakter berikutnya diabaikan.

Jika valuenull (atau kosong dalam versi sebelum .NET 9) dan variabel lingkungan yang dinamai oleh variable ada, variabel lingkungan akan dihapus. Jika variable tidak ada, tidak ada kesalahan yang terjadi meskipun operasi tidak dapat dilakukan. value dianggap kosong dalam salah satu kondisi berikut:

  • Ini String.Empty.
  • Ini terdiri dari satu karakter yang nilainya adalah U+0000.

Lihat juga

Berlaku untuk

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Sumber:
Environment.cs
Sumber:
Environment.cs
Sumber:
Environment.cs

Membuat, memodifikasi, atau menghapus variabel lingkungan yang disimpan dalam proses saat ini atau di kunci registri sistem operasi Windows yang dicadangkan untuk pengguna atau komputer lokal saat ini.

public:
 static void SetEnvironmentVariable(System::String ^ variable, System::String ^ value, EnvironmentVariableTarget target);
public static void SetEnvironmentVariable (string variable, string? value, EnvironmentVariableTarget target);
public static void SetEnvironmentVariable (string variable, string value, EnvironmentVariableTarget target);
static member SetEnvironmentVariable : string * string * EnvironmentVariableTarget -> unit
Public Shared Sub SetEnvironmentVariable (variable As String, value As String, target As EnvironmentVariableTarget)

Parameter

variable
String

Nama variabel lingkungan.

value
String

Nilai yang akan ditetapkan ke variable.

target
EnvironmentVariableTarget

Salah satu nilai enumerasi yang menentukan lokasi variabel lingkungan.

Pengecualian

variable null.

variable berisi string panjang nol, karakter nol heksadesimal awal (0x00), atau tanda sama dengan ("=").

-atau-

Panjang variable lebih besar dari atau sama dengan 32.767 karakter.

-atau-

target bukan anggota enumerasi EnvironmentVariableTarget.

-atau-

target Machine atau User, dan panjang variable lebih besar dari atau sama dengan 255.

-atau-

target Process dan panjang value lebih besar dari atau sama dengan 32.767 karakter.

-atau-

Terjadi kesalahan selama eksekusi operasi ini.

Pemanggil tidak memiliki izin yang diperlukan untuk melakukan operasi ini.

Contoh

Contoh berikut membuat variabel lingkungan untuk target EnvironmentVariableTarget.Process, EnvironmentVariableTarget.User, dan Machine, memeriksa apakah registri sistem operasi berisi variabel lingkungan pengguna dan komputer, lalu menghapus variabel lingkungan. Karena .NET pada sistem seperti Unix tidak mendukung variabel lingkungan per pengguna dan per mesin, hanya SetEnvironmentVariable(String, String) dan SetEnvironmentVariable(String, String, EnvironmentVariableTarget) dengan nilai EnvironmentVariableTarget.Process berhasil menyimpan variabel lingkungan ke blok lingkungan proses.

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

Keterangan

Metode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) memungkinkan Anda menentukan variabel lingkungan yang tersedia untuk proses saat ini (nilai Process). Variabel lingkungan yang unik untuk blok lingkungan proses saat ini hanya bertahan sampai proses berakhir.

Selain itu, hanya pada sistem Windows, metode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) memungkinkan Anda menentukan variabel lingkungan yang tersedia untuk semua proses yang berjalan pada komputer (nilai EnvironmentVariableTarget.Machine) dan untuk semua proses yang dijalankan oleh pengguna (nilai EnvironmentVariableTarget.User). Variabel lingkungan per mesin dan per pengguna disalin ke blok lingkungan dari proses saat ini.

Pada sistem seperti Unix, panggilan ke metode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) dengan nilai EnvironmentVariableTarget.Machine atau EnvironmentVariableTarget.User diabaikan.

Pada sistem seperti Unix, panggilan ke metode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) dengan nilai EnvironmentVariableTarget.Process tidak berpengaruh pada pustaka asli apa pun yang, atau akan dimuat. (Sebaliknya, modifikasi lingkungan dalam proses yang dibuat oleh pustaka asli tidak dilihat oleh pemanggil terkelola.)

Jika argumen value tidak null dan variabel lingkungan yang dinamai oleh argumen variable tidak ada, variabel lingkungan dibuat dan diberi konten value. Jika memang ada, nilainya dimodifikasi.

Jika variable berisi karakter nol heksadesimal non-awal, karakter sebelum karakter nol dianggap sebagai nama variabel lingkungan dan semua karakter berikutnya diabaikan.

Jika value berisi karakter nol heksadesimal non-awal, karakter sebelum karakter nol ditetapkan ke variabel lingkungan dan semua karakter berikutnya diabaikan.

Jika valuenull (atau kosong dalam versi sebelum .NET 9) dan variabel lingkungan yang dinamai oleh variable ada, variabel lingkungan akan dihapus. value dianggap kosong dalam salah satu kondisi berikut:

  • Ini String.Empty.
  • Ini terdiri dari satu karakter yang nilainya adalah U+0000.

Jika variable tidak ada, tidak ada kesalahan yang terjadi meskipun operasi tidak dapat dilakukan. Berhati-hatilah ketika targetMachine, karena Anda dapat secara tidak sengaja menghapus variabel lingkungan yang memengaruhi seluruh komputer lokal Anda, bukan hanya proses atau pengguna saat ini.

EnvironmentVariableTarget.Machine dan EnvironmentVariableTarget.User di sistem Windows

Jika targetEnvironmentVariableTarget.User, variabel lingkungan disimpan di kunci HKEY_CURRENT_USER\Environment registri komputer lokal. Ini juga disalin ke instans File Explorer yang berjalan sebagai pengguna saat ini. Variabel lingkungan kemudian diwarisi oleh proses baru yang diluncurkan pengguna dari File Explorer.

Demikian pula, jika targetEnvironmentVariableTarget.Machine, variabel lingkungan disimpan di kunci HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment registri komputer lokal. Ini juga disalin ke semua instans File Explorer. Variabel lingkungan kemudian diwarisi oleh proses baru apa pun yang diluncurkan dari File Explorer.

Jika targetUser atau Machine, aplikasi lain akan diberi tahu tentang operasi yang ditetapkan oleh pesan WM_SETTINGCHANGE Windows.

Jika targetEnvironmentVariableTarget.User atau EnvironmentVariableTarget.Machine, sebaiknya panjang value kurang dari 2048 karakter.

Lihat juga

Berlaku untuk