ProcessStartInfo.Arguments プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アプリケーションを起動するときに使用するコマンド ライン引数のセットを取得または設定します。
public:
property System::String ^ Arguments { System::String ^ get(); void set(System::String ^ value); };
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; }
member this.Arguments : string with get, set
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Arguments : string with get, set
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Arguments : string with get, set
[<System.ComponentModel.SettingsBindable(true)>]
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Arguments : string with get, set
[<System.ComponentModel.SettingsBindable(true)>]
member this.Arguments : string with get, set
Public Property Arguments As String
プロパティ値
FileName プロパティで指定したターゲット アプリケーションに渡す引数を格納した単一の文字列。 既定値は、空の文字列 ("") です。
- 属性
例
最初の例では、引数をコンソールにエコーする小さなアプリケーション (argsecho.exe) を作成します。 2 番目の例では、プロパティのさまざまなバリエーションを示すために argsecho.exe を呼び出すアプリケーションを Arguments
作成します。
// Place this code into a console project called ArgsEcho to build the argsecho.exe target
using namespace System;
int main(array<System::String ^> ^args)
{
Console::WriteLine("Received the following arguments:\n");
for (int i = 0; i < args->Length; i++)
{
Console::WriteLine("[" + i + "] = " + args[i]);
}
Console::WriteLine("\nPress any key to exit");
Console::ReadLine();
return 0;
}
// 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 ArgsEcho to build the argsecho.exe target
Module Module1
Sub Main()
Dim i As Integer = 0
For Each s As String In My.Application.CommandLineArgs
Console.WriteLine($"[{i}] = {s}")
i = i + 1
Next
Console.WriteLine(Environment.NewLine + "Press any key to exit")
Console.ReadLine()
End Sub
End Module
// Place the following code into a console project called StartArgsEcho. It depends on the
// console application named argsecho.exe.
using namespace System;
using namespace System::Diagnostics;
int main()
{
ProcessStartInfo^ startInfo = gcnew 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.
// 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.
// [0] = /a
// [1] = /b:"quoted string"
startInfo->Arguments = "/a /b:\"\"\"quoted string\"\"\"";
Process::Start(startInfo);
return 0;
}
// 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);
}
}
}
' Place this code into a console project called StartArgsEcho. It depends on the
' console application named argsecho.exe.
Module Module1
Sub Main()
Dim startInfo As ProcessStartInfo = 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.
' 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.
' [0] = /a
' [1] = /b:"quoted string"
startInfo.Arguments = "/a /b:""""""quoted string"""""" "
Process.Start(startInfo)
End Sub
End Module
注釈
プロパティに割り当てられる Arguments
文字列の長さは、32,699 未満である必要があります。
引数はターゲット アプリケーションで解析され、解釈されるため、そのアプリケーションの想定に合わせたものでなければなりません。 次の例に示すように、.NET アプリケーションの場合、スペースは複数の引数間の区切り記号として解釈されます。 1 つの引数にスペースが含まれる場合は引用符で囲む必要がありますが、これらの引用符はターゲット アプリケーションに渡されません。 最後に解析された引数に引用符を含めるには、各マークを 3 回エスケープします。 このプロパティを使用してコマンド ライン引数を設定する場合は、 ArgumentList 要素を含めてはいけません。
Arguments
と ArgumentListは、.NET Core 2.1 および .NET Standard 2.1 以降でサポートされており、相互に独立しています。 つまり、 プロパティに Arguments
割り当てられた文字列はコレクションに ArgumentList 設定されず、コレクションの ArgumentList メンバーは プロパティに Arguments
割り当てません。
重要
信頼されていないデータを指定してこのオブジェクトのインスタンスを使用することは、セキュリティ上のリスクが伴います。 このオブジェクトは信頼されたデータでのみ使用してください。 詳細については、「 すべての入力を検証する」を参照してください。
適用対象
.NET