Environment.SetEnvironmentVariable Méthode
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée, modifie ou supprime une variable d’environnement.
SetEnvironmentVariable(String, String) |
Crée, modifie ou supprime une variable d’environnement stockée dans le processus actuel. |
SetEnvironmentVariable(String, String, EnvironmentVariableTarget) |
Crée, modifie ou supprime une variable d’environnement stockée dans le processus actuel ou dans la clé de Registre du système d’exploitation Windows réservée à l’utilisateur ou à l’ordinateur local actuel. |
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
Crée, modifie ou supprime une variable d’environnement stockée dans le processus actuel.
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)
Paramètres
- variable
- String
Nom d’une variable d’environnement.
- value
- String
Valeur à affecter à variable
.
Exceptions
variable
est null
.
variable
contient une chaîne de longueur nulle, un caractère zéro hexadécimal initial (0x00) ou un signe égal (« = »).
-ou-
La longueur de variable
ou de value
est supérieure ou égale à 32 767 caractères.
-ou-
Une erreur s’est produite pendant l’exécution de cette opération.
L’appelant n’a pas l’autorisation requise pour effectuer cette opération.
Exemples
L’exemple suivant tente de récupérer la valeur d’une variable d’environnement nommée Test1
à partir du bloc d’environnement de processus. Si la variable n’existe pas, l’exemple crée la variable et récupère sa valeur. L’exemple affiche la valeur de la variable. Pour les implémentations .NET s’exécutant sur des systèmes Windows, elle appelle également la méthode GetEnvironmentVariables(EnvironmentVariableTarget) avec chaque membre de l’énumération EnvironmentVariableTarget pour établir que la variable peut être récupérée uniquement à partir du bloc d’environnement de processus actuel. (Les implémentations .NET sur des systèmes de type Unix prennent uniquement en charge les variables dans le bloc d’environnement de processus.) Enfin, si l’exemple a créé la variable, elle le supprime.
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.
Remarques
L’appel de cette méthode équivaut à appeler la surcharge de SetEnvironmentVariable(String, String, EnvironmentVariableTarget) avec une valeur de EnvironmentVariableTarget.Process pour l’argument target
.
Sur les systèmes unix, les appels à la méthode SetEnvironmentVariable(String, String) n’ont aucun effet sur les bibliothèques natives qui sont ou seront chargées. (À l’inverse, les modifications apportées à l’environnement in-process par les bibliothèques natives ne sont pas visibles par les appelants gérés.)
Si l’argument value
n’est pas null
et que la variable d’environnement nommée par le paramètre variable
n’existe pas, la variable d’environnement est créée et affectée au contenu de value
. S’il existe, sa valeur est modifiée. Étant donné que la variable d’environnement est définie dans le bloc d’environnement du processus actuel uniquement, elle ne persiste pas une fois le processus terminé.
Si variable
contient un caractère hexadécimal non initial, les caractères avant le caractère zéro sont considérés comme le nom de la variable d’environnement et tous les caractères suivants sont ignorés.
Si value
contient un caractère hexadécimal non initial, les caractères avant l’affectation du caractère zéro à la variable d’environnement et tous les caractères suivants sont ignorés.
Si value
est null
(ou vide dans les versions antérieures à .NET 9) et que la variable d’environnement nommée par variable
existe, la variable d’environnement est supprimée. Si variable
n’existe pas, aucune erreur ne se produit même si l’opération ne peut pas être effectuée.
value
est considéré comme vide dans l’une des conditions suivantes :
- C’est String.Empty.
- Il se compose d’un caractère unique dont la valeur est U+0000.
Voir aussi
S’applique à
.NET 9 et autres versions
Produit | Versions |
---|---|
.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 | 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 |
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
Crée, modifie ou supprime une variable d’environnement stockée dans le processus actuel ou dans la clé de Registre du système d’exploitation Windows réservée à l’utilisateur ou à l’ordinateur local actuel.
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)
Paramètres
- variable
- String
Nom d’une variable d’environnement.
- value
- String
Valeur à affecter à variable
.
- target
- EnvironmentVariableTarget
Une des valeurs d’énumération qui spécifie l’emplacement de la variable d’environnement.
Exceptions
variable
est null
.
variable
contient une chaîne de longueur nulle, un caractère zéro hexadécimal initial (0x00) ou un signe égal (« = »).
-ou-
La longueur de variable
est supérieure ou égale à 32 767 caractères.
-ou-
target
n’est pas membre de l’énumération EnvironmentVariableTarget.
-ou-
target
est Machine ou User, et la longueur de variable
est supérieure ou égale à 255.
-ou-
target
est Process et la longueur de value
est supérieure ou égale à 32 767 caractères.
-ou-
Une erreur s’est produite pendant l’exécution de cette opération.
L’appelant n’a pas l’autorisation requise pour effectuer cette opération.
Exemples
L’exemple suivant crée des variables d’environnement pour les cibles EnvironmentVariableTarget.Process, EnvironmentVariableTarget.Useret Machine, vérifie si le registre du système d’exploitation contient les variables d’environnement utilisateur et machine, puis supprime les variables d’environnement. Étant donné que .NET sur les systèmes de type Unix ne prend pas en charge les variables d’environnement par utilisateur et par ordinateur, seules les SetEnvironmentVariable(String, String) et les SetEnvironmentVariable(String, String, EnvironmentVariableTarget) avec une valeur de EnvironmentVariableTarget.Process stockent correctement une variable d’environnement dans le bloc d’environnement de processus.
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...
Remarques
La méthode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) vous permet de définir une variable d’environnement disponible pour le processus actuel (valeur Process). Les variables d’environnement uniques au bloc d’environnement de processus actuel persistent uniquement jusqu’à ce que le processus se termine.
En outre, sur les systèmes Windows uniquement, la méthode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) vous permet de définir une variable d’environnement disponible pour tous les processus qui s’exécutent sur un ordinateur (valeur de EnvironmentVariableTarget.Machine) et pour tous les processus exécutés par un utilisateur (valeur EnvironmentVariableTarget.User). Les variables d’environnement par ordinateur et par utilisateur sont copiées dans le bloc d’environnement du processus actuel.
Sur les systèmes unix, les appels à la méthode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) avec une valeur de EnvironmentVariableTarget.Machine ou de EnvironmentVariableTarget.User sont ignorés.
Sur les systèmes unix, les appels à la méthode SetEnvironmentVariable(String, String, EnvironmentVariableTarget) avec une valeur de EnvironmentVariableTarget.Process n’ont aucun effet sur les bibliothèques natives qui sont ou seront chargées. (À l’inverse, les modifications apportées à l’environnement in-process par les bibliothèques natives ne sont pas visibles par les appelants gérés.)
Si l’argument value
n’est pas null
et que la variable d’environnement nommée par l’argument variable
n’existe pas, la variable d’environnement est créée et affectée au contenu de value
. S’il existe, sa valeur est modifiée.
Si variable
contient un caractère hexadécimal non initial, les caractères avant le caractère zéro sont considérés comme le nom de la variable d’environnement et tous les caractères suivants sont ignorés.
Si value
contient un caractère hexadécimal non initial, les caractères avant l’affectation du caractère zéro à la variable d’environnement et tous les caractères suivants sont ignorés.
Si value
est null
(ou vide dans les versions antérieures à .NET 9) et que la variable d’environnement nommée par variable
existe, la variable d’environnement est supprimée.
value
est considéré comme vide dans l’une des conditions suivantes :
- C’est String.Empty.
- Il se compose d’un caractère unique dont la valeur est U+0000.
Si variable
n’existe pas, aucune erreur ne se produit même si l’opération ne peut pas être effectuée. Soyez prudent lorsque target
est Machine, car vous pouvez supprimer accidentellement une variable d’environnement qui affecte l’ensemble de votre ordinateur local, pas seulement le processus actuel ou l’utilisateur.
EnvironmentVariableTarget.Machine et EnvironmentVariableTarget.User sur les systèmes Windows
Si target
est EnvironmentVariableTarget.User, la variable d’environnement est stockée dans la clé HKEY_CURRENT_USER\Environment du registre de l’ordinateur local. Il est également copié dans des instances de l’Explorateur de fichiers qui s’exécutent en tant qu’utilisateur actuel. La variable d’environnement est ensuite héritée par les nouveaux processus lancés par l’utilisateur à partir de l’Explorateur de fichiers.
De même, si target
est EnvironmentVariableTarget.Machine, la variable d’environnement est stockée dans la clé HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment du registre de l’ordinateur local. Elle est également copiée dans toutes les instances de l’Explorateur de fichiers. La variable d’environnement est ensuite héritée par les nouveaux processus lancés à partir de l’Explorateur de fichiers.
Si target
est User ou Machine, d’autres applications sont averties de l’opération définie par un message Windows WM_SETTINGCHANGE
.
Si target
est EnvironmentVariableTarget.User ou EnvironmentVariableTarget.Machine, nous recommandons que la longueur de value
soit inférieure à 2 048 caractères.
Voir aussi
- GetEnvironmentVariable(String, EnvironmentVariableTarget)
- GetEnvironmentVariables(EnvironmentVariableTarget)
- EnvironmentVariableTarget
S’applique à
.NET 9 et autres versions
Produit | Versions |
---|---|
.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 |
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :