Environment.SetEnvironmentVariable Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 value
null
(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 value
null
(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 target
Machine, 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 target
EnvironmentVariableTarget.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 target
EnvironmentVariableTarget.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 target
User atau Machine, aplikasi lain akan diberi tahu tentang operasi yang ditetapkan oleh pesan WM_SETTINGCHANGE
Windows.
Jika target
EnvironmentVariableTarget.User atau EnvironmentVariableTarget.Machine, sebaiknya panjang value
kurang dari 2048 karakter.
Lihat juga
- GetEnvironmentVariable(String, EnvironmentVariableTarget)
- GetEnvironmentVariables(EnvironmentVariableTarget)
- EnvironmentVariableTarget