Environment.GetCommandLineArgs 方法

返回包含当前进程的命令行参数的字符串数组。

命名空间:   System
程序集:  mscorlib(在 mscorlib.dll 中)
public static string[] GetCommandLineArgs()
返回值
类型: System.String []
字符串数组,其中的每个元素都包含一个命令行参数。  第一个元素是可执行文件名,后面的零个或多个元素包含其余的命令行参数。 
异常 条件
NotSupportedException

系统不支持命令行参数。

数组中的第一个元素包含执行程序的文件名。 如果该文件名不可用,则第一个元素等于 String.Empty 其他元素包含在命令行输入的任何附加标记。

程序文件名可以(但不是必须)包含路径信息。

命令行参数由空格分隔。 可以使用双引号 (") 在参数中包含空格。 但是,单引号 (') 不提供此功能。

如果两个或偶数个反斜杠后跟双引号,则前面的每个反斜杠对被一个反斜杠替代,并且双引号被删除。 如果奇数个(包括仅仅一个)反斜杠后跟双引号,则前面的每个反斜杠对被一个反斜杠替代,其余的反斜杠被删除;但在此情况下,双引号不会被删除。

下表显示如何分隔命令行参数,并假定 MyApp 为当前执行的应用程序。

命令行上的输入内容

生成的命令行参数

MyApp alpha beta

MyApp, alpha, beta

MyApp "alpha with spaces" "beta with spaces"

MyApp, alpha with spaces, beta with spaces

MyApp 'alpha with spaces' beta

MyApp, 'alpha, with, spaces', beta

MyApp \\\alpha \\\\"beta

MyApp, \\\alpha, \\beta

MyApp \\\\\"alpha \"beta

MyApp, \\"alpha, "beta

若要获取作为单个字符串的命令行,请使用 CommandLine 属性。

平台说明:可执行文件的名称不包含该路径。

平台说明:可执行文件的名称包含该路径。 长文件名(非 8.3 名称)可以缩短到它们的 8.3 表示形式。

下面的示例显示应用程序的命令行参数。

using System;

class Sample 
{
    public static void Main() 
    {
    Console.WriteLine();
    //  Invoke this sample with an arbitrary set of command line arguments.
    String[] arguments = Environment.GetCommandLineArgs();
    Console.WriteLine("GetCommandLineArgs: {0}", String.Join(", ", arguments));
    }
}
/*
This example produces output like the following:

    C:\>GetCommandLineArgs ARBITRARY TEXT

      GetCommandLineArgs: GetCommandLineArgs, ARBITRARY, TEXT
*/

### C# 中 `Environment` 类及其常用方法 在 C# 编程语言中,`Environment` 类提供了有关当前应用程序的运行环境和平台的信息。此类无法被继承,并且大多数成员都是静态的。 #### 获取操作系统信息 可以使用 `OSVersion` 属性获取关于操作系统的版本信息: ```csharp Console.WriteLine($"Operating System Version: {Environment.OSVersion}"); ``` #### 获取处理器计数 要查询计算机上的 CPU 数量,可以通过访问 `ProcessorCount` 属性完成: ```csharp int cpuCount = Environment.ProcessorCount; Console.WriteLine($"Number of processors: {cpuCount}"); ``` #### 设置或检索环境变量 对于设置或取得特定名称的环境变量值,则分别调用 `SetEnvironmentVariable` 和 `GetEnvironmentVariable` 方法[^1]。 ```csharp // Set an environment variable named "MyVar" Environment.SetEnvironmentVariable("MyVar", "Value"); // Retrieve the value associated with "MyVar" string myVarValue = Environment.GetEnvironmentVariable("MyVar"); Console.WriteLine($"The value of MyVar is: {myVarValue}"); ``` #### 处理命令行参数 当程序启动时传递给它的命令行参数可通过 `CommandLine` 或者遍历 `GetCommandLineArgs()` 返回的结果数组获得。 ```csharp foreach (var arg in Environment.GetCommandLineArgs()) { Console.WriteLine(arg); } ``` #### 控制台编码方式调整 有时可能需要改变控制台输入输出使用的字符集,在这种情况下就可以利用 `InputEncoding` 及 `OutputEncoding` 来达成目的。 ```csharp System.Text.Encoding enc = new System.Text.UTF8Encoding(); Environment.InputEncoding = enc; Environment.OutputEncoding = enc; ``` 以上就是一些常见的 `Environment` 类的应用场景以及如何运用这些功能来增强应用程序的功能性和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值