Environment.GetCommandLineArgs Metodo

Definizione

Restituisce una matrice di stringa contenente gli argomenti della riga di comando per il processo corrente.Returns a string array containing the command-line arguments for the current process.

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

Restituisce

String[]

Una matrice di stringhe in cui ogni elemento contiene un argomento della riga di comando.An array of strings where each element contains a command-line argument. Il primo elemento è il nome del file eseguibile, mentre i successivi zero o più elementi contengono i restanti argomenti della riga di comando.The first element is the executable file name, and the following zero or more elements contain the remaining command-line arguments.

Eccezioni

Il sistema non supporta gli argomenti della riga di comando.The system does not support command-line arguments.

Esempio

Nell'esempio seguente vengono visualizzati gli argomenti della riga di comando dell'applicazione.The following example displays the application's command line arguments.

using namespace System;

int main()
{
   Console::WriteLine();
   
   //  Invoke this sample with an arbitrary set of command line arguments.
   array<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
*/
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
*/
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
'    

Commenti

Il primo elemento della matrice contiene il nome file del programma in esecuzione.The first element in the array contains the file name of the executing program. Se il nome file non è disponibile, il primo elemento è uguale a String.Empty .If the file name is not available, the first element is equal to String.Empty. Gli elementi rimanenti contengono eventuali token aggiuntivi immessi nella riga di comando.The remaining elements contain any additional tokens entered on the command line.

In .NET 5,0 e versioni successive, per la pubblicazione su file singolo, il primo elemento è il nome del file eseguibile dell'host.In .NET 5.0 and later versions, for single-file publishing, the first element is the name of the host executable.

Il nome del file di programma può, ma non è necessario, includere le informazioni sul percorso.The program file name can, but is not required to, include path information.

Gli argomenti della riga di comando sono delimitati da spazi.Command line arguments are delimited by spaces. È possibile utilizzare le virgolette doppie (") per includere gli spazi all'interno di un argomento.You can use double quotation marks (") to include spaces within an argument. La virgoletta singola ('), tuttavia, non fornisce questa funzionalità.The single quotation mark ('), however, does not provide this functionality.

Se le virgolette doppie seguono due o un numero pari di barre rovesciate, ogni coppia di barre rovesciate che procede viene sostituita da una barra rovesciata e le virgolette doppie vengono rimosse.If a double quotation mark follows two or an even number of backslashes, each proceeding backslash pair is replaced with one backslash and the double quotation mark is removed. Se le virgolette doppie seguono un numero dispari di barre rovesciate, inclusa una sola, ogni coppia precedente viene sostituita da una barra rovesciata e la barra rovesciata rimanente viene rimossa. Tuttavia, in questo caso, le virgolette doppie non vengono rimosse.If a double quotation mark follows an odd number of backslashes, including just one, each preceding pair is replaced with one backslash and the remaining backslash is removed; however, in this case the double quotation mark is not removed.

Nella tabella seguente viene illustrato il modo in cui gli argomenti della riga di comando possono essere delimitati e viene presupposto MyApp come l'applicazione in esecuzione corrente.The following table shows how command line arguments can be delimited, and assumes MyApp as the current executing application.

Input dalla riga di comandoInput at the command line Argomenti della riga di comando risultantiResulting command line arguments
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

Per ottenere la riga di comando come singola stringa, utilizzare la CommandLine Proprietà.To obtain the command line as a single string, use the CommandLine property.

Si applica a

Vedi anche