13

コマンドラインから引数/フラグを読み取るときにスラッシュ(/) またはハイフン(-)をいつ使用するかについての規則 (書かれているか、一般的に理解されている) はありますか?

C:\> myprogram.exe -a
C:\> myprogram.exe /a

私の経験では、この 2 つは互換性があるように見えますが、コマンド ライン ツールを十分に使用して、ルールやパターンを発見したとは言えません。

それらのいずれかがまったく使用されている正当な理由はありますか? 必要に応じて、理論的にアスタリスク(*) を使用できますか?

4

7 に答える 7

13

パラメーターはコマンドライン プログラムに渡される単なる文字列であるため、(理論的には) 好きなものを使用できます。

ハイフンや一種の環境変数構文を使用ipconfig /allするプログラムもありますが、Windows の規則ではスラッシュの使用が好まれるようです。gacutil -isetup SKUUPGRADE=1

*Nix の規則では-v、1 文字のパラメーターにはハイフンを、複数文字のパラメーターには 2 つのハイフンを使用するよう--verboseです。

私はハイフンを好む傾向があります。ハイフンは OS に依存せず (一部の OS ではスラッシュはパス区切り文字です)、最新の Windows アプリ (nuget など) で使用されるためです。

編集:

これは、.NET コマンドライン引数の解析を行うライブラリを推奨するのに適した場所です: http://commandline.codeplex.com/

于 2013-03-28T13:46:28.747 に答える
6

コマンド ライン オプションのスタイル - POSIX または何?も参照してください。.

DOS と Windows では、スラッシュを/aorのように使用するのが伝統/extendです。使用の伝統は-a、Unix (およびおそらく他の場所) から来ています。

のような 1 文字のフラグに 1 つのダッシュを使用するGNU 標準-e -dがあり、これらは にマージできます-ed(したがって-edは と同等です-e -d)。次に、 のように、複数文字のスイッチには 2 つのダッシュが必要--extend --displayです。場合によっては、どのスイッチが意味するかを推測するのに十分なだけの単語を書くだけでよい場合もあります。たとえば、文字で始まるスイッチが他にない場合は--disp、省略形になる可能性があります。--displaydisp...

于 2013-03-28T13:49:38.200 に答える
5

通常、短い/長いオプションの場合/、Windows および-/ Unix システム上にあります。--しかし、それについてのルールはありませんので、実際にはあなた次第です。

于 2013-03-28T13:46:17.330 に答える
0

規則は次のとおりです。

  • -単一文字フラグの場合、それらは連鎖できます (例:rm -Rfは と同じですrm -R -f)

  • --複数の文字を含むフラグ (例: rm --recursive --force)

使用/は、Windows が DOS を継承した古い標準であり、DOS は CP/M から継承されたものであり、新しいソフトウェアには使用しないでください。Windows 以外のシステムと読者にとってあいまいさが生じます。.NET や PowerShell などの最新の Microsoft ツール-はフラグを使用するため、Microsoft でさえ/もう使用したくありません。

于 2020-06-15T22:33:31.080 に答える
0

好きなものを使用することも、主役をまったく使用しないこともできます。何よりも基準を遵守することが重要です。他のユーザーがあなたのアプリケーションを使用するとき、彼らは引数を追加するときに - または / を含めようと考えるでしょう。

于 2013-03-28T13:42:24.440 に答える
0

Windows アプリでは、先頭のスラッシュ (/) が一般的です。単一のハイフン (-) は、POSIX 準拠のアプリケーションで短いオプション (単一の文字で構成されるオプション) として一般的です。このようなアプリケーションの長いオプションでは、2 つのハイフン (--) が一般的です。

POSIX 情報については、このリンクを参照してください。 または、この SO 投稿を参照してください。

于 2013-03-28T13:49:16.067 に答える