2021-06-26 C# 系统接口 操作环境变量

本文演示了如何使用C#在不同目标(默认、进程、用户、机器)中设置、获取和删除环境变量,并展示了在Windows和Unix系统上的输出示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// The local machine.    
 sys
 Environment.SetEnvironmentVariable(
 machineEnvVar, 
 null, EnvironmentVariableTarget)

微软连接:https://docs.microsoft.com/zh-cn/dotnet/api/System.EnvironmentVariableTarget?view=net-5.0

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...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值