コマンドのオプションの区切りに“/”と“-”の2種類があるのは?

(イラスト・アニメーション:岸本 ムサシ)

  今回の回答者:
テクニカルライター
塩田 紳二

 Windowsのコマンドプロンプトなどで使うコマンドには、「ipconfig /all」のようにオプション(引数)の区切りに“/”を使うものと、「ping -t」のように“-”を使うものがあります。引数の区切りが2種類ある正確な理由はわかりませんが、MS-DOSの頃からあるコマンドでは引数の区切りに“/”を、Windows NT以降に加わった管理者向けのコマンドでは“-”をよく使っているようです。

 ビル・ゲイツやポール・アレンといった米マイクロソフトの創業メンバーが通っていた高校では、米ディジタル・イクイップメント(DEC)のコンピュータを生徒が自由に使えるようにしてありました。そのコンピュータのOSでは、引数の区切りは“/”でした。後に、彼らはCP/Mという他社製OSで動くプログラムをマイクロソフトで開発します。DECの“/”に慣れていた彼らが、そのプログラムの引数の区切りに“/”を採用したのは自然な流れだったのではないでしょうか。

 マイクロソフトはその後、米シアトル・コンピュータ・プロダクツが開発した86-DOSの権利を購入し、それを基にMS-DOSを開発しました。このMS-DOSの標準的なコマンドの引数の区切りにも、“/”を採用しています。

 一方、マイクロソフトは“-”を採用したコマンドも作っています。サーバーOSのWindows NT以降に用意したコマンドに多いようです。“-”を使うUNIXの操作に慣れた管理者に親しんでもらえるためにそうしたものと思われます。また、Windows 7に標準で備わるコマンドラインインタフェース、PowerShellのコマンドは、引数の区切りに“-”を採用しています。

 “-”を採用したコマンドでも、“-”に加えて“/”も使えるものがあります。例えば、netstatがそうです。なお、“/”と“-”のどちらを標準で採用したコマンドかは、ヘルプで確認できます。ヘルプは、“-”を採用したコマンドでも「/?」で表示されます。