IT・ビジネススキル・人材育成の情報を掲載 | 人材育成のトレノケート【公式ブログ】

PowerShellの勉強の仕方(その2)

この記事は2014年1月16日に作成されました。

 

前回「PowerShellの勉強の仕方(その1) 」ではPowerShellの概要について紹介しました。

今回は、PowerShellから実行できるコマンドについてさらに詳しく紹介します。

 

 

PowerShellから実行できるコマンド

バッチファイル

PowerShellは、PowerShellで記述したスクリプトを実行できます。この時、スクリプトファイルの拡張子はps1(ピー、エス、イチ)です。しかし、BATやVBSといった今までのバッチファイルもPowerShellで実行が可能です。これにより過去の厖大なバッチファイルの資産を無駄にすることなく、PowerShellに移行できます。

 

外部コマンド

また、PowerShellはWindowsで実行できる外部コマンド(実行可能モジュール)をすべて実行できます。もちろんWindows付属のコマンドに限らず、個人運営のWebサイトからダウンロードした便利コマンドなども同じように実行できます(ウイルスも実行できるので注意してください)。

 

言い換えれば、今まで利用していた外部コマンドはすべてPowerShell上で実行できるのです。疑念を抱いている方は、PowerShellで下記の外部コマンドを実行してみてください。

 

IPCONFIG /ALL

 

コマンドプロンプトで実行したのと同様に、現在のIPアドレスが表示されたはずです(ただしIPCONFIGと/ALLの間にはスペースが必須です)。

 

内部コマンド

CMD.EXEの内部コマンドを実行することはできませんが(どうしても実行したければ 「CMD /c コマンド」と実行してください)、エイリアス設定を利用することで、コマンドの置き換えをしています。

 

エイリアスとは別名、簡単に言えばニックネームのことです。PowerShellでは本来のコマンド名(≒本名)に対して、ニックネームを付けることができます。CMD.EXEの主な内部コマンドには、あらかじめニックネームが付けられています。これにより内部コマンドもPowerShell上で実行できるようになっています。

 

試しにPowerShellで下記の内部コマンドを実行してみてください。

 

DIR

 

これもコマンドプロンプトで実行したのと同様に、フォルダやファイルの一覧が表示されたはずです。ただし、エイリアス(ニックネーム)設定されているのは、内部コマンド名のみなので、パラメーターやオプションは本名(ニックネームではない本来のスペル)でなければなりません。

 

サブフォルダのファイルも表示するオプション

参考として先程のコマンドに、サブフォルダのファイルも表示するオプションを付けて実行する例を挙げておきます。なおDIRの本名はGet-ChildItemです。

 

DIR /s

 

DIRはGet-ChildItemのエイリアスですが、PoweShellの Get-ChildItem コマンドレットは /s というオプションを認識しないのでエラーになります。

 

Get-ChildItemでは、DIRの /s に相当するオプションは -Recurse なので

 

DIR -Recurse

または

Get-ChildItem -Recurse

 

はどちらも成功します。

 

入力補完機能

コマンド名は従来通りとしても、内部コマンドに対する新しいオプションを憶えねばならないと溜息が出そうですね。でも、ハイフンを入力した後にTABキーを押すことで補完してくれるので、オプションのスペルを正確に憶える必要はありません。

 

また、普段利用しているコマンドは、拡張子exeで提供される外部コマンドがほとんどのはずです。(外部コマンドのオプションは、外部コマンドのexeファイル自身が認識するので、従来通りで新たに憶える必要はありません。)

 

そのためコマンドプロンプトで実行していたコマンドは、ほぼすべてPowerShellでも実行ができると言えるのです。

 

PowerShellとコマンドプロンプトの機能を比較

PowerShellとコマンドプロンプトの機能を比較すると下記のようなイメージになります。

 

 

PowerShellはコマンドプロンプトのコマンドが、ほぼすべて意識することなく利用できます。どうせ開くなら、大は小を兼ねるでPowerShellを開くようにしてはどうでしょう。PowerShellなら、従来のコマンドだけでなく、新しいコマンド(特に追加されたコマンドレットなど)も利用可能なのですから。

 

追記

PowerShellとコマンドプロンプトの最大の違いは、実行結果がテキストではなくオブジェクトである点だと考えています。これらは機会があれば紹介しようと考えていますが、みなさんも探ってみてください。

 

Powershellを学べるトレーニング

Windows PowerShell コマンド・スクリプト入門(MSC0482V)

Windows PowerShell 実践 ~Windows Server 2016対応~(MSC0607G)   

 

Microsoft認定トレーニング

トレノケートは、2002年にMicrosoftのラーニングソリューション分野において、日本で初めてラーニング部門のゴールドパートナーに認定されました。以降、Microsoft認定資格対応研修Windows Server 研修Microsoft Azure 研修など幅広い分野で多数の最新コースラインナップを提供し続けています。

Microsoft認定トレーニングについて