catch-img

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 Certified Trainer/Microsoft Certified: Azure Solutions Architect Expert/Microsoft Certified: Azure Administrator Associate/ Microsoft Certified: Azure Fundamentals/Microsoft MVP: Cloud and Datacenter Management(2003年-2018年)/EXIN Cloud Computing Foundation/ AWS 認定クラウドプラクティショナー。1994年から現在まで、Windows Serverの全てのバージョンでコースを担当。2005年からはサーバー仮想化、2014年からMicrosoft Azure関連コースを担当。現在は、AzureとWindows Server 2016を中心に教育コースを実施しているほか、新規コースの企画・開発も担当している。趣味は写真、好きなサービスは「Active Directoryドメインサービス」、好きなアイドルは「まなみのりさ」。
   

Windows PowerShell

人気記事

人材育成専門企業トレノケート【公式ブログ】
© Trainocate Japan, Ltd. All Right Reserved. 2008-2018