ProcessStartInfo.Arguments Propriedade

Definição

Obtém ou define o conjunto de argumentos de linha de comando a serem usados ao iniciar o aplicativo.

public string Arguments { get; set; }
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Arguments { get; set; }
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Arguments { get; set; }
[System.ComponentModel.SettingsBindable(true)]
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Arguments { get; set; }
[System.ComponentModel.SettingsBindable(true)]
public string Arguments { get; set; }

Valor da propriedade

Uma única cadeia de caracteres que contém os argumentos a serem passados para o aplicativo de destino especificado na propriedade FileName. O padrão é uma cadeia de caracteres vazia ("").

Atributos

Exemplos

O primeiro exemplo cria um aplicativo pequeno (argsecho.exe) que ecoa seus argumentos para o console. O segundo exemplo cria um aplicativo que invoca argsecho.exe para demonstrar diferentes variações para a Arguments propriedade .

// Place this code into a console project called ArgsEcho to build the argsecho.exe target

using System;

namespace StartArgs
{
    class ArgsEcho
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Received the following arguments:\n");

            for (var i = 0; i < args.Length; i++)
            {
                Console.WriteLine($"[{i}] = {args[i]}");
            }

            Console.WriteLine("\nPress any key to exit");
            Console.ReadLine();
        }
    }
}
// Place this code into a console project called StartArgsEcho. It depends on the
// console application named argsecho.exe.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace StartArgsEcho
{
    class Program
    {
        static void Main()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("argsecho.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Normal;

            // Start with one argument.
            // Output of ArgsEcho:
            //  [0]=/a
            startInfo.Arguments = "/a";
            Process.Start(startInfo);

            // Start with multiple arguments separated by spaces.
            // Output of ArgsEcho:
            //  [0] = /a
            //  [1] = /b
            //  [2] = c:\temp
            startInfo.Arguments = "/a /b c:\\temp";
            Process.Start(startInfo);

            // An argument with spaces inside quotes is interpreted as multiple arguments.
            // Output of ArgsEcho:
            //  [0] = /a
            //  [1] = literal string arg
            startInfo.Arguments = "/a \"literal string arg\"";
            Process.Start(startInfo);

            // An argument inside double quotes is interpreted as if the quote weren't there,
            // that is, as separate arguments. Equivalent verbatim string is @"/a /b:""string with quotes"""
            // Output of ArgsEcho:
            //  [0] = /a
            //  [1] = /b:string
            //  [2] = in
            //  [3] = double
            //  [4] = quotes
            startInfo.Arguments = "/a /b:\"\"string in double quotes\"\"";
            Process.Start(startInfo);

            // Triple-escape quotation marks to include the character in the final argument received
            // by the target process. Equivalent verbatim string: @"/a /b:""""""quoted string""""""";
            //  [0] = /a
            //  [1] = /b:"quoted string"
            startInfo.Arguments = "/a /b:\"\"\"quoted string\"\"\"";
            Process.Start(startInfo);
        }
    }
}

Comentários

O comprimento da cadeia de caracteres atribuída à Arguments propriedade deve ser menor que 32.699.

Os argumentos são analisados e interpretados pelo aplicativo de destino e, portanto, devem estar alinhados com as expectativas do aplicativo. Para aplicativos .NET, conforme demonstrado nos Exemplos abaixo, os espaços são interpretados como um separador entre vários argumentos. Um argumento único que inclui espaços deve ser delimitado por aspas, mas as aspas não são passadas para o aplicativo de destino. Para incluir aspas no argumento analisado final, escape triplo de cada marca. Se você usar essa propriedade para definir argumentos de linha de comando, ArgumentList não deverá conter nenhum elemento.

Arguments e ArgumentList, que têm suporte a partir do .NET Core 2.1 e do .NET Standard 2.1, são independentes uns dos outros. Ou seja, a cadeia de caracteres atribuída à Arguments propriedade não preenche a ArgumentList coleção e os membros da ArgumentList coleção não são atribuídos à Arguments propriedade .

Importante

Usar uma instância deste objeto quando você tiver dados não confiáveis é um risco à segurança. Use esse objeto somente quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Aplica-se a