Environment.SetEnvironmentVariable Metódus

Definíció

Környezeti változót hoz létre, módosít vagy töröl.

Túlterhelések

Name Description
SetEnvironmentVariable(String, String)

Létrehoz, módosít vagy töröl egy környezeti változót, amely az aktuális folyamatban van tárolva.

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Létrehoz, módosít vagy töröl egy környezeti változót, amely az aktuális folyamatban vagy a Windows az aktuális felhasználó vagy helyi gép számára fenntartott operációsrendszer-beállításkulcsban van tárolva.

SetEnvironmentVariable(String, String)

Forrás:
Environment.cs
Forrás:
Environment.cs
Forrás:
Environment.cs
Forrás:
Environment.cs
Forrás:
Environment.cs

Létrehoz, módosít vagy töröl egy környezeti változót, amely az aktuális folyamatban van tárolva.

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éterek

variable
String

Egy környezeti változó neve.

value
String

A hozzárendelni variablekívánt érték.

Kivételek

variable az null.

variable nulla hosszúságú sztringet, kezdeti hexadecimális nulla karaktert (0x00) vagy egyenlőségjelet ("=") tartalmaz.

-vagy-

A hosszúság variablevalue 32 767 karakternél hosszabb vagy egyenlő.

-vagy-

Hiba történt a művelet végrehajtása során.

A hívó nem rendelkezik a művelet végrehajtásához szükséges engedéllyel.

Példák

Az alábbi példa egy folyamatkörnyezeti blokkból elnevezett Test1 környezeti változó értékét próbálja lekérni. Ha a változó nem létezik, a példa létrehozza a változót, és lekéri annak értékét. A példa a változó értékét jeleníti meg. A Windows rendszereken futó .NET-implementációk esetében a GetEnvironmentVariables(EnvironmentVariableTarget) enumerálás minden tagjával meghívja a EnvironmentVariableTarget metódust annak megállapításához, hogy a változó csak az aktuális folyamatkörnyezeti blokkból kérhető le. (.NET Unix-szerű rendszerek implementációi csak a folyamatkörnyezeti blokk változóit támogatják.) Végül, ha a példa létrehozta a változót, törli azt.

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.

Megjegyzések

Ennek a metódusnak a meghívása egyenértékű azzal, ha a SetEnvironmentVariable(String, String, EnvironmentVariableTarget) túlterhelést az EnvironmentVariableTarget.Process argumentum értékével target hívja meg.

Unix-szerű rendszereken a SetEnvironmentVariable(String, String) metódus hívásai semmilyen natív kódtárra nem lesznek hatással, amelyek betöltve vannak vagy betöltve lesznek. (Ezzel szemben a natív kódtárak által végrehajtott, folyamatban lévő környezetmódosításokat a felügyelt hívók nem látják.)

Ha az value argumentum nem null létezik, és a paraméter által variable elnevezett környezeti változó nem létezik, a környezeti változó létrejön, és hozzá lesz rendelve a tartalomhoz value. Ha létezik, az értéke módosul. Mivel a környezeti változó csak az aktuális folyamat környezeti blokkjában van definiálva, a folyamat befejezése után nem marad meg.

Ha variable nem kezdeti hexadecimális nulla karaktert tartalmaz, a nulla karakter előtti karaktereket a környezeti változó neveként tekinti a rendszer, és az összes további karaktert figyelmen kívül hagyja.

Ha value nem kezdeti hexadecimális nulla karaktert tartalmaz, a nulla karakter előtti karakterek hozzá lesznek rendelve a környezeti változóhoz, és az összes további karakter figyelmen kívül lesz hagyva.

Ha valuenull (vagy a 9. .NET előtti verziókban üres), és a variable által elnevezett környezeti változó létezik, a környezeti változó törlődik. Ha variable nem létezik, akkor sem történik hiba annak ellenére, hogy a művelet nem hajtható végre. value az alábbi feltételek bármelyike esetén üresnek minősül:

  • Ez .String.Empty
  • Egyetlen karakterből áll, amelynek értéke U+0000.

Lásd még

A következőre érvényes:

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Forrás:
Environment.cs
Forrás:
Environment.cs
Forrás:
Environment.cs
Forrás:
Environment.cs
Forrás:
Environment.cs

Létrehoz, módosít vagy töröl egy környezeti változót, amely az aktuális folyamatban vagy a Windows az aktuális felhasználó vagy helyi gép számára fenntartott operációsrendszer-beállításkulcsban van tárolva.

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éterek

variable
String

Egy környezeti változó neve.

value
String

A hozzárendelni variablekívánt érték.

target
EnvironmentVariableTarget

A környezeti változó helyét meghatározó enumerálási értékek egyike.

Kivételek

variable az null.

variable nulla hosszúságú sztringet, kezdeti hexadecimális nulla karaktert (0x00) vagy egyenlőségjelet ("=") tartalmaz.

-vagy-

A hossz variable nagyobb vagy egyenlő 32 767 karakternél.

-vagy-

target nem tagja az EnvironmentVariableTarget enumerálásnak.

-vagy-

target Machinevagy User , és a hossza variable nagyobb vagy egyenlő 255-nél.

-vagy-

target Process value 32 767 karakternél nagyobb vagy egyenlő.

-vagy-

Hiba történt a művelet végrehajtása során.

A hívó nem rendelkezik a művelet végrehajtásához szükséges engedéllyel.

Példák

Az alábbi példa környezeti változókat hoz létre a EnvironmentVariableTarget.Process, EnvironmentVariableTarget.Userés Machine a célok számára, ellenőrzi, hogy az operációsrendszer-beállításjegyzék tartalmazza-e a felhasználói és a gép környezeti változóit, majd törli a környezeti változókat. Mivel a Unix-szerű rendszerek .NET nem támogatják a felhasználónkénti és a gépenkénti környezeti változókat, csak SetEnvironmentVariable(String, String) és SetEnvironmentVariable(String, String, EnvironmentVariableTarget)EnvironmentVariableTarget.Process sikeresen tárol egy környezeti változót a folyamatkörnyezeti blokkban.

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

Megjegyzések

A SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metódus lehetővé teszi az aktuális folyamat (az Process érték) számára elérhető környezeti változó meghatározását. Az aktuális folyamatkörnyezeti blokkra jellemző környezeti változók csak a folyamat befejezéséig maradnak meg.

Emellett csak Windows rendszereken a SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metódus lehetővé teszi, hogy meghatározzon egy környezeti változót, amely elérhető a számítógépen futó összes folyamat számára (a EnvironmentVariableTarget.Machine érték), valamint a felhasználó által futtatott összes folyamat számára (a EnvironmentVariableTarget.User érték). A rendszer gépenkénti és felhasználónkénti környezeti változókat másol az aktuális folyamat környezeti blokkjába.

Unix-szerű rendszereken a SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metódusra irányuló hívások értéke EnvironmentVariableTarget.Machine vagy EnvironmentVariableTarget.User figyelmen kívül hagyása.

Unix-szerű rendszereken a SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metódushoz intézett hívásoknak EnvironmentVariableTarget.Process nincs hatása a betöltött vagy betöltendő natív kódtárakra. (Ezzel szemben a natív kódtárak által végrehajtott, folyamatban lévő környezetmódosításokat a felügyelt hívók nem látják.)

Ha az value argumentum nem null , és az argumentum által variable elnevezett környezeti változó nem létezik, a környezeti változó létrejön, és hozzá lesz rendelve a tartalomhoz value. Ha létezik, az értéke módosul.

Ha variable nem kezdeti hexadecimális nulla karaktert tartalmaz, a nulla karakter előtti karaktereket a környezeti változó neveként tekinti a rendszer, és az összes további karaktert figyelmen kívül hagyja.

Ha value nem kezdeti hexadecimális nulla karaktert tartalmaz, a nulla karakter előtti karakterek hozzá lesznek rendelve a környezeti változóhoz, és az összes további karakter figyelmen kívül lesz hagyva.

Ha valuenull (vagy a 9. .NET előtti verziókban üres), és a variable által elnevezett környezeti változó létezik, a környezeti változó törlődik. value az alábbi feltételek bármelyike esetén üresnek minősül:

  • Ez .String.Empty
  • Egyetlen karakterből áll, amelynek értéke U+0000.

Ha variable nem létezik, nem történik hiba, bár a művelet nem hajtható végre. Legyen óvatos, ha target van Machine, mert véletlenül törölhet egy környezeti változót, amely a teljes helyi gépet érinti, nem csak az aktuális folyamatot vagy felhasználót.

EnvironmentVariableTarget.Machine and EnvironmentVariableTarget.User on Windows systems

Ha target igen EnvironmentVariableTarget.User, a környezeti változó a helyi számítógép beállításjegyzékének HKEY_CURRENT_USER\Environment kulcsában lesz tárolva. A fájlkezelő az aktuális felhasználóként futó példányokra is át lesz másolva. A környezeti változót ezután a felhasználó által a Fájlkezelőből indított új folyamatok öröklik.

Hasonlóképpen, ha target igen EnvironmentVariableTarget.Machine, a környezeti változó a helyi számítógép beállításjegyzékének HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment kulcsában lesz tárolva. A fájlkezelő minden példányára is átmásolja. A környezeti változót ezután a Fájlkezelőből indított új folyamatok öröklik.

Ha targetUser vagy Machine, a többi alkalmazás egy Windows WM_SETTINGCHANGE üzenetben értesítést kap a beállított műveletről.

Ha target igen EnvironmentVariableTarget.UserEnvironmentVariableTarget.Machine, akkor azt javasoljuk, hogy a hossz value ne legyen kisebb 2048 karakternél.

Lásd még

A következőre érvényes: