6

コマンドラインからプログラムを開くときに、複数の名前付きパラメーターを受け入れる機能をプログラムに追加する必要があります。すなわち

program.exe /param1=value /param2=value

そして、これらのパラメーターをプログラム内の変数として利用できるようになります。これを実現する方法をいくつか見つけましたが、すべてをまとめる方法がわかりません。

私は 1 つの名前付きパラメーターを渡し、以下のコードを使用してそれを回復することができました。考えられるすべての名前付きパラメーターに対してそれを複製することはできましたが、これが好ましい方法ではないことはわかっています。

    Dim inputArgument As String = "/input="
    Dim inputName As String = ""

    For Each s As String In My.Application.CommandLineArgs
        If s.ToLower.StartsWith(inputArgument) Then
            inputName = s.Remove(0, inputArgument.Length)
        End If
    Next

または、コマンド ラインから複数の名前のないパラメーターを取得することもできます。

My.Application.CommandLineArgs

ただし、これには、すべてのパラメーターが毎回同じ順序/形式で渡される必要があります。毎回パラメーターのランダムなサブセットを渡すことができる必要があります。

最終的に、私ができるようにしたいのは、各引数と値を分離し、後で使用するために多次元配列にロードすることです。「=」で文字列を区切り、「/」を取り除くことでこれを行う方法を見つけることができることは知っていますが、これには少し慣れていないので、「好ましい」処理方法があるかどうかを確認したかったのです。複数の名前付きパラメーターを使用しますか?

4

2 に答える 2

7

これを処理するための私の好みは、コマンドラインパーサーライブラリなどの既存のライブラリを使用することです。(ただし、デフォルトでは、代わりにベースの異なる入力形式が使用されます。)--input=Value/input=value

これにより、コードを自分で作成する必要がなくなり、柔軟性と堅牢性が大幅に向上し、コードが簡素化されるという利点が得られます。

于 2012-11-19T23:00:24.647 に答える