エイリアスと互換性

マイクロソフトの成功の礎は互換性担保であったというひとがいます。
たしかに、互換性について気をつけているあたり、マイクロソフトはかなりがんばっていて、
レガシープログラムを破棄することなく使えますよというところにだいぶこだわっているようです。
そしたら、買いますよね。新しいOSでも。バージョンあがっても、次も互換性が保たれるのかなと考えて。

新シェルであるPowerShellも、コマンドプロンプトというCUIシェルが存在したことを受け、
ある程度互換性を保持しています。

コマンドプロンプトとの互換性について、PowerShellでこれを図るのはエイリアスです。
つぎのコマンドで確認してみましょう。

Get-Command -type Alias;

おなじみのコマンドとして使っていたものが、ほとんど、コマンドレットに置き換わっています。
だから、単体で動きはわりと近くても、出力がちがう。ここは注意しないといけません。
テキストを解析して云々とやっていたところはすべて修正。

それと、fcなんかはちがいますね。
エグゼ呼び出しではなく別のコマンドレットになっています。

互換性を保とうと努力してはいるものの、ネイティブなエグゼを起動する場合と、
コマンドレットに関連付ける場合と、優先されるのはコマンドレットのようです。
将来を考えて、泣いて馬謖を斬るっていうんですか、それほどのあれはないかもしれませんけど。

いちおう、こんなふうに入力が解決されます。
-- パスを指定しなかった場合、Windows PowerShell は次の優先順位でコマンドを実行します。
1. エイリアス
2. 関数
3. コマンドレット
4. ネイティブ Windows コマンド