2016-12-13 3 views
-4

これはおそらく、私が尋ねる最も混乱していることです。私はオンラインで何かを見つけることができません。「コマンド」を端末で行う方法をどのように作成するか。 C#

現在、私はWindows用のVisual C#でアプリケーションを作成しています。

基本的には、コマンドを受け取るコンソールアプリケーションです。コマンドを作成するには適切な方法が必要です。

たとえば、私の現在の使用法は、ユーザー入力を受け取り、そのコマンドがString.Contains()を使用しているかどうかを確認することです。方法。次に、パラメータがString.Contains()を使用しているかどうかを確認します。

例:

コマンドが「順序」であり、パラメータは「-food」および「-pizza」および「-xl」

することができれば、ユーザが入力するコマンドは次のようになります。

order -food -pizza -xl 

あなたは

apt-get install python 

が、私のquestioのようにLinuxの中にそうするのと同じ方法では、 nは、String.Contains();を使用せずに、ウィンドウ内でC#のようなシステムを作成する方法です。システム。

私の食品の例では、これは私が私がつかむ入力で行わwouldveものです、ので:コマンドが「注文」 が含まれている場合、私はチェックします

それは「-food」 が含まれている場合、私はチェックします"-pizza"が含まれているかどうかを確認します。 "-xl"が含まれているかどうかを確認します。

これは私が知っている非常に悪いことです。

私はこれをC#で行うことができる適切な方法はありますか?

そして、いや、私は、あなたが、私はそれがとても「コマンドプロンプト」または「端末」は私のコンソールアプリケーション内にある

ping 192.168.1.1 

たい方法のように、プロンプトコマンドから起動されたexeのを望んでいませんC#で私はコマンドを入力することができます。

私は可能な限り具体的に行きましたが、私はもう行くことができません。

私はこの男が言っていることを探しています: C#: How to detect arguments typed into console application?

+2

あなたはコマンドラインパラメータを渡す方法を見なければなりませんコンソールアプリケーション実際にこれを行う方法については、オンラインでたくさんの例があり、おそらく 'switch(){} case'ステートメントで作業しています。また、コンソールアプリケーションでpingステートメントを実行することもできます。これをオンラインで行う方法については、多くの実践例があります。 – MethodMan

+0

多くの既成オプションがあります(http://stackoverflow.com/questions)/491595 /ベスト・ウェイ・ツー・パース・コマンドライン・アーギュメント・イン・コーディングnoredirect = 1&lq = 1)。例えば、私はそれを望んでいない – Jasen

+0

@MethodMan、私のアプリケーションは、私は 助けを行うには、Windowsのコマンドプロンプトを使用したくない help.exe ある場合-g -h – bin

答えて

1

最初のものは、実際の部品にあなたの入力文字列を分割することです。その後、これを実行した後、最初の項目はコマンドそのものです。これを切り替えて、何をすべきかを見つけてください。他のすべての部分はこのコマンドの引数なので、コマンド自体で処理する必要があります。これが完了した方法です。これを考慮してください:

rm -R * 

このコマンドはすべてを再帰的に削除します。どうやって?次の配列を受け取るには、空白文字で分割します。

["rm", "-R", "*"] 

ここからどこに行くのですか?最初の項目、rmがあなたのコマンドです。それを見て、何をすべきかを決める。それ以外はすべて引数なので、コマンドはそれらを処理する必要があります。クラスRmHandlerを拡張してCommandHandlerを作成します(自分でクラスを作成する必要があります)。そして、そのクラスに他の引数を渡します。そこに、あなたが彼らと何をする必要があれば何でもしてください。

+0

これは私が探しているものですが、全部ではありませんが、私の質問に役立ちます。私はすでに "CommandHandler"クラスを別のdllファイルとして作成しました。コマンドヘンドラー。 – bin

+0

上記のコメントの上の他の人は、NDeskまたはSystem.Commandlineについて話していましたか?これはこれを行う簡単な方法だろうか、私はただ図書館をつかんでそれを行うしかないだろうか。 – bin

+0

これは外部の図書館なので、私はここにそれらの必要はないと思う。私はそれらを知らないので、彼らもあなたの問題を解決するかもしれません。最も簡単な方法は、私が説明したアプローチです。 – NikxDa

関連する問題