Power Shell(パワーシェル)とは?コマンドプロンプトとの違い

Power Shell
この記事は約7分で読めます。

Power Shell(パワーシェル)は他の言語に比べ習得レベルが低く、英文に近い書き方なので、簡単に書くことができます。

Power Shellは、マイクロソフトにより開発されたコマンドプロンプトの後継ツールで、Windowsに標準搭載されています。

コマンドプロンプトについてはこちら

 

Power Shellはスクリプト言語である

多くのプログラム言語は、コンピューターがプログラムを実行する際に、
「機械語」に変換して実行します。

Power Shellはコンピュータに直接実行命令を出せるため、実行までに手間がかからず、
習得したコードをすぐに試すことができます。

そのような、コンピューターに直接命令するPower Shellのような言語を「スクリプト言語」といいます。

 

PowerShellでできること

「コマンドレット」と言われる命令文を書くことで、ファイル操作やプログラムの起動等ができます。
コマンドレットは「動詞-名詞」という形式になっており、コマンドプロンプトに比べ、文字を打つ量が少なく直感的に利用できます。

Power Shellはコマンドプロンプトでは不可能だった、複数の命令を組み合わせることができ、より高度な処理を行うことができます。

 

どんな時に使用するか

ファイル操作やプログラムの起動、Windowsの設定など、基本的にコマンドプロンプトと同じことをPower Shellでも行えます。

ファイル操作

コマンドプロンプト同様、ファイルやフォルダの作成や移動、削除などを行うことができます。
ファイルやフォルダの複製ができ、バックアップの作成をコマンドレットから行えます。

 

プログラムの起動

Start-Process コマンドレットを使用することで、(.exe)などのアプリ実行やソースコードの実行を行うことができます。
プロセスの確認や停止を行うことも可能です。

 

Microsoftのサービスを操作できる

Microsoft365などのサービスを操作することができます。
メールを自動で送信や、Excelの実行を行えます。

Power Shellで書かれたファイルをスクリプトファイルといいます。
Power Shellのスクリプトファイルの拡張子は「.ps1」です。

スクリプトファイルとWindowsに標準搭載されている、
タスクスケジューラを組み合わせることで自動実行も可能になります。

PowerShellをタスクスケジューラから実行する

 

PowerShellとコマンドプロンプトの違い

Power Shellはコマンドプロンプトではできなかった、複数のコマンドを実行したりなど、複雑な命令を処理することができます。

基本的にコマンドプロンプトでできることは、PowerShellにもできます。コマンドプロンプトに代わって、PowerShellが普及していくと考えられるため、今後はPowerShellを利用した方が良いと思います。

 

起動方法

恐らく一番早い起動方法

Windowsキーを右クリック→Windows PowerShell もしくは、
Windows PowerShell(管理者)をクリック

 

Windows PowerShell とWindows PowerShell(管理者)の違いって?

操作権限の違いです。管理者しかできない重要な操作をする場合に、
Windows PowerShess(管理者)を使用します。

Windowsキークリック→Windows PowerShell内のWindows PowerShellをクリック

Windows11でも上記の操作で起動しますが、
Windows11ではWindows PowerShellを「ターミナル」読み替えてください。

 

PowerShellの基本構文

PowerShellでは、「コマンドレット」と言われる命令文を書きます。

コマンドレットは「動詞-名詞」という形式になっており、コマンドレットを見ただけでどのような処理をするかわかりやすくなっています。

 

コマンドプロンプトの構文の例

dirを使用して、「sample」がファイル名に含まれるファイルを検索するコマンドです。
 dir  sample*  /b
コマンド名  ファイル名  オプション

/bの部分はオプションといい、dirコマンドにおいて/bは、ファイル名だけを結果に表示させるオプションです。

出力結果は以下のようになります。

 

PowerShellの構文の例

Get-ChildItemを使用して、Cドライブの中で、「test」が含まれるファイルやフォルダを検索するコマンドです。

Get-ChildItem  -Path    C:     -Filte  *test*
 コマンドレット名 パラメータ名  フォルダ名 パラメータ名   ファイル名

-Pathの部分はパラメータといい、パラメータの後に値を入力します。(値がいらないものもあります。)

Get-Helpコマンドレットを使用すると、使用できるパラメータが確認できます。

Get-ChildItemでは、-Pathと-Filterがパラメータとして使えることがわかります。

構文で書かれている[]の部分は省略可なパラメータです。-Pathと-Filterは省略することができるので、以下のように書くこともできます。

Get-ChildItem  C:  *test*
コマンドレット名  フォルダ名 ファイル名

<>の部分は[]で入力するデータ型です。Stringは文字列型です。

構文中の、[<CommonParameters>]は共通パラメータという意味があり、PowerShellのコマンドレットで使用できる共通のパラメータのことを指します。

 

PowerShellのパイプラインを使用した構文の例

パイプラインを使うことで、1つ目のコマンドレットの結果を、2つ目のコマンドレットに渡すことができます。

このように、コマンドレットとコマンドレットの間に「|」を挟みます。

Get-Content sample1.txt | Select-Object -First 2

Get-Contentは、指定したファイルの内容を取得するコマンドレットです。Select-Objectはオブジェクトを出力するコマンドレットです。

上記の構文では、Get-Contentで取得したsample1.txtの内容をSelect-Objectに渡し、2行目まで出力します。

このように、パイプラインはコマンドレット同士の値の橋渡し役として使用します。

 

よく使うコマンドレット

コマンド 内容
Get-Command 使用可能なコマンド一覧の表示
Get-Help コマンドなどのヘルプの表示
Get-Process 実行中のプロセス一覧の表示
Get-Service 実行中のサービス一覧の表示
Get-NetIPConfiguration IPネットワーク情報の表示
Set-Location カレントディレクトリの変更
New-Item 新しいファイルやフォルダの作成
Copy-Item ファイルやフォルダのコピー
Remove-Item ファイルやフォルダの削除

よく使うコマンドレットはこちら

 

PowerShellの入力補助機能

Tabキーによる入力補完

Get-Commandを入力したい場合、「Get-C」など途中まで入力して、Tabを押すと、一致するコマンドの候補が表示されます。Tabを押すたびにコマンドの候補がかわります。


(ここでTabを押すとGet-Commandまでたどり着くのにTabを何回も押さなければならないので、Get-Coくらいまで入力すると良い)

ちなみに、Tabを押していくうちに目的のコマンドを通り過ぎてしまったときは、Shift+Tabでひとつ前の候補に戻ることができます。

 

上矢印キーによる履歴表示

なにも入力していない状態で上矢印(↑)を押すと、今まで入力したコマンドの履歴を表示させることができます。

PowerShellの練習や、前回利用したコマンドと同じようなコマンドを打つときに利用すると便利です。

 

まとめ

Power Shellは、マイクロソフトにより開発されたコマンドプロンプトの後継ツールで、Windowsに標準搭載されています。

コマンドプロンプトとは

「コマンドレット」と言われる命令文を書くことで、ファイル操作やプログラムの起動等ができます。