基本的に、コマンド ラインで「/?」を使用して呼び出されるアプリがあることは知っています。コマンドラインからパラメーターを使用してアプリを呼び出す方法のフォーマットされたリストを吐き出します。また、これらのアプリは、渡された特定のパラメーターでのみプログラムを実行できることをユーザーに警告するボックスをポップアップし、この詳細な形式のパラメーターを提供することもあります (コマンド プロンプト出力と同様)。
彼らはどのようにこれを行うのですか (/? はポップアップボックスよりも重要です)?
このMain
メソッドはstring[]
、コマンド ライン引数でパラメーターを受け取ります。メソッド
を呼び出すこともできます。Environment.GetCommandLineArgs
次に、配列に が含まれているかどうかを確認できます"/?"
。
NDesk.Optionsを見てみてください。これは、引数の解析を提供する単一ソース ファイルの組み込み可能な C# ライブラリです。引数をすばやく解析できます。
public static void Main(string[] args)
{
string data = null;
bool help = false;
int verbose = 0;
var p = new OptionSet () {
{ "file=", "The {FILE} to work on", v => data = v },
{ "v|verbose", "Prints out extra status messages", v => { ++verbose } },
{ "h|?|help", "Show this message and exit", v => help = v != null },
};
List<string> extra = p.Parse(args);
}
ヘルプ画面をプロ並みの形式で簡単に書き出すこともできます。
if (help)
{
Console.WriteLine("Usage: {0} [OPTIONS]", EXECUTABLE_NAME);
Console.WriteLine("This is a sample program.");
Console.WriteLine();
Console.WriteLine("Options:");
p.WriteOptionDescriptions(Console.Out);
}
これにより、次のような出力が得られます。
C:\>program.exe /?
Usage: program [OPTIONS]
This is a sample program.
Options:
-file, --file=FILE The FILE to work on
-v, -verbose Prints out extra status messages
-h, -?, --help Show this message and exit