Environment.GetCommandLineArgs 方法

定义

返回一个字符串数组,其中包含当前进程的命令行参数。

public:
 static cli::array <System::String ^> ^ GetCommandLineArgs();
public static string[] GetCommandLineArgs();
static member GetCommandLineArgs : unit -> string[]
Public Shared Function GetCommandLineArgs () As String()

返回

String[]

一个字符串数组,其中每个元素都包含一个命令行参数。 第一个元素是可执行文件名称,下面的零个或多个元素包含剩余的命令行参数。

例外

系统不支持命令行参数。

示例

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

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
*/
open System

//  Invoke this sample with an arbitrary set of command line arguments.
let arguments = Environment.GetCommandLineArgs()

String.concat ", " arguments
|> printfn "\nGetCommandLineArgs: %s"

// This example produces output like the following:
//     C:\>GetCommandLineArgs ARBITRARY TEXT
//
//       GetCommandLineArgs: GetCommandLineArgs, ARBITRARY, TEXT
Class Sample
   Public Shared Sub Main()
      Console.WriteLine()
      '  Invoke this sample with an arbitrary set of command line arguments.
      Dim arguments As String() = Environment.GetCommandLineArgs()
      Console.WriteLine("GetCommandLineArgs: {0}", String.Join(", ", arguments))
   End Sub
End Class
'This example produces output like the following:
'    
'    C:\>GetCommandLineArgs ARBITRARY TEXT
'    
'      GetCommandLineArgs: GetCommandLineArgs, ARBITRARY, TEXT
'

注解

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

在 .NET 5 及更高版本中,对于单文件发布,第一个元素是主机可执行文件的名称。

程序文件名可以包含路径信息,但不是必需的。

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

如果双引号后跟两个或偶数反斜杠,则每个继续反斜杠对将替换为一个反斜杠,并删除双引号。 如果双引号后跟奇数反斜杠,包括一个反斜杠,则前一对将替换为一个反斜杠,并删除剩余反斜杠;但是,在这种情况下,不会删除双引号。

下表显示了如何分隔命令行参数,并假定 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 该属性。

适用于

另请参阅