Environment.SetEnvironmentVariable Metod

Definition

Skapar, ändrar eller tar bort en miljövariabel.

Överlagringar

Name Description
SetEnvironmentVariable(String, String)

Skapar, ändrar eller tar bort en miljövariabel som lagras i den aktuella processen.

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Skapar, ändrar eller tar bort en miljövariabel som lagras i den aktuella processen eller i Windows registernyckel för operativsystem som är reserverad för den aktuella användaren eller den lokala datorn.

SetEnvironmentVariable(String, String)

Källa:
Environment.cs
Källa:
Environment.cs
Källa:
Environment.cs
Källa:
Environment.cs
Källa:
Environment.cs

Skapar, ändrar eller tar bort en miljövariabel som lagras i den aktuella processen.

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)

Parametrar

variable
String

Namnet på en miljövariabel.

value
String

Ett värde som ska tilldelas till variable.

Undantag

variable är null.

variable innehåller en sträng med noll längd, ett inledande hexadecimalt nolltecken (0x00) eller ett likhetstecken ("=").

-eller-

Längden på variable eller value är större än eller lika med 32 767 tecken.

-eller-

Ett fel uppstod under körningen av den här åtgärden.

Anroparen har inte den behörighet som krävs för att utföra den här åtgärden.

Exempel

I följande exempel försöker du hämta värdet för en miljövariabel med namnet Test1 från processmiljöblocket. Om variabeln inte finns skapar exemplet variabeln och hämtar dess värde. I exemplet visas variabelns värde. För .NET implementeringar som körs på Windows system anropas även metoden GetEnvironmentVariables(EnvironmentVariableTarget) med varje medlem i EnvironmentVariableTarget-uppräkning för att fastställa att variabeln endast kan hämtas från det aktuella processmiljöblocket. (.NET implementeringar på Unix-liknande system stöder endast variabler i processmiljöblocket.) Om exemplet slutligen skapade variabeln tas den bort.

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.

Kommentarer

Att anropa den här metoden motsvarar att anropa överlagringen SetEnvironmentVariable(String, String, EnvironmentVariableTarget) med värdet EnvironmentVariableTarget.Process för för target argumentet.

I Unix-liknande system har anrop till SetEnvironmentVariable(String, String) metoden ingen effekt på inbyggda bibliotek som läses in eller kommer att läsas in. (Omvänt visas inte ändringar i den processbaserade miljön som görs av inbyggda bibliotek av hanterade anropare.)

value Om argumentet inte null är och miljövariabeln med namnet av parametern variable inte finns skapas miljövariabeln och tilldelas innehållet i value. Om den finns ändras dess värde. Eftersom miljövariabeln definieras endast i miljöblocket för den aktuella processen bevaras den inte när processen har avslutats.

Om variable innehåller ett icke-initialt hexadecimalt nolltecken betraktas tecknen före nolltecknet som miljövariabelns namn och alla efterföljande tecken ignoreras.

Om value innehåller ett icke-initialt hexadecimalt nolltecken, tilldelas tecknen innan nolltecknet till miljövariabeln och alla efterföljande tecken ignoreras.

Om value är null (eller tom i versioner före .NET 9) och miljövariabeln med namnet av variable finns, tas miljövariabeln bort. Om variable det inte finns något fel inträffar inget fel trots att åtgärden inte kan utföras. value anses vara tom under något av följande villkor:

  • Det är String.Empty.
  • Den består av ett enskilt tecken vars värde är U+0000.

Se även

Gäller för

SetEnvironmentVariable(String, String, EnvironmentVariableTarget)

Källa:
Environment.cs
Källa:
Environment.cs
Källa:
Environment.cs
Källa:
Environment.cs
Källa:
Environment.cs

Skapar, ändrar eller tar bort en miljövariabel som lagras i den aktuella processen eller i Windows registernyckel för operativsystem som är reserverad för den aktuella användaren eller den lokala datorn.

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)

Parametrar

variable
String

Namnet på en miljövariabel.

value
String

Ett värde som ska tilldelas till variable.

target
EnvironmentVariableTarget

Ett av uppräkningsvärdena som anger miljövariabelns plats.

Undantag

variable är null.

variable innehåller en sträng med noll längd, ett inledande hexadecimalt nolltecken (0x00) eller ett likhetstecken ("=").

-eller-

Längden variable på är större än eller lika med 32 767 tecken.

-eller-

target är inte medlem i EnvironmentVariableTarget uppräkningen.

-eller-

target är Machine eller User, och längden variable på är större än eller lika med 255.

-eller-

target är Process och längden value på är större än eller lika med 32 767 tecken.

-eller-

Ett fel uppstod under körningen av den här åtgärden.

Anroparen har inte den behörighet som krävs för att utföra den här åtgärden.

Exempel

I följande exempel skapas miljövariabler för EnvironmentVariableTarget.Processmålen , EnvironmentVariableTarget.Useroch Machine kontrollerar om operativsystemets register innehåller miljövariablerna för användare och datorer och tar sedan bort miljövariablerna. Eftersom .NET på Unix-liknande system inte stöder miljövariabler per användare och per dator, SetEnvironmentVariable(String, String) och SetEnvironmentVariable(String, String, EnvironmentVariableTarget) med värdet EnvironmentVariableTarget.Process lagra en miljövariabel i processmiljöblocket.

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

Kommentarer

Med SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metoden kan du definiera en miljövariabel som är tillgänglig för den aktuella processen ( Process värdet). Miljövariabler som är unika för det aktuella processmiljöblocket bevaras endast tills processen är slut.

Windows Med metoden SetEnvironmentVariable(String, String, EnvironmentVariableTarget) kan du dessutom definiera en miljövariabel som är tillgänglig för alla processer som körs på en dator (värdet EnvironmentVariableTarget.Machine) och för alla processer som körs av en användare (värdet EnvironmentVariableTarget.User). Miljövariabler per dator och per användare kopieras till miljöblocket för den aktuella processen.

I Unix-liknande system ignoreras anrop till SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metoden med värdet EnvironmentVariableTarget.Machine eller EnvironmentVariableTarget.User .

I Unix-liknande system har anrop till SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metoden med värdet för EnvironmentVariableTarget.Process ingen effekt på inbyggda bibliotek som läses in eller läses in. (Omvänt visas inte ändringar i den processbaserade miljön som görs av inbyggda bibliotek av hanterade anropare.)

value Om argumentet inte null är och miljövariabeln som heter av variable argumentet inte finns skapas miljövariabeln och tilldelas innehållet i value. Om den finns ändras dess värde.

Om variable innehåller ett icke-initialt hexadecimalt nolltecken betraktas tecknen före nolltecknet som miljövariabelns namn och alla efterföljande tecken ignoreras.

Om value innehåller ett icke-initialt hexadecimalt nolltecken, tilldelas tecknen innan nolltecknet till miljövariabeln och alla efterföljande tecken ignoreras.

Om value är null (eller tom i versioner före .NET 9) och miljövariabeln med namnet av variable finns, tas miljövariabeln bort. value anses vara tom under något av följande villkor:

  • Det är String.Empty.
  • Den består av ett enskilt tecken vars värde är U+0000.

Om variable det inte finns något fel inträffar inget fel även om åtgärden inte kan utföras. Var försiktig när target är Machine, eftersom du av misstag kan ta bort en miljövariabel som påverkar hela den lokala datorn, inte bara den aktuella processen eller användaren.

EnvironmentVariableTarget.Machine och EnvironmentVariableTarget.User på Windows system

Om target är EnvironmentVariableTarget.Userlagras miljövariabeln i den HKEY_CURRENT_USER\Environment nyckeln i den lokala datorns register. Den kopieras också till instanser av Utforskaren som körs som den aktuella användaren. Miljövariabeln ärvs sedan av alla nya processer som användaren startar från Utforskaren.

target Om är EnvironmentVariableTarget.Machinelagras miljövariabeln på samma sätt i den HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment nyckeln i den lokala datorns register. Den kopieras också till alla instanser av Utforskaren. Miljövariabeln ärvs sedan av alla nya processer som startas från Utforskaren.

Om target är User eller Machine, meddelas andra program om den angivna åtgärden av ett Windows WM_SETTINGCHANGE meddelande.

Om target är EnvironmentVariableTarget.User eller EnvironmentVariableTarget.Machinerekommenderar vi att längden på value är mindre än 2 048 tecken.

Se även

Gäller för