PowerShellとは
PowerShellは、Windowsを効率的に操作するためのコマンドラインシェル、スクリプト言語です。
Windowsにはプレインストールされており、従来のコマンドプロンプトよりも強力で、Windowsの管理の自動化などをすることができます。
PowerShellの起動
検索バーに「PowerShell」と入力すればPowerShellが見つかります。

32ビットバージョンと64ビットバージョンがあり、(x86)と書かれているものが32ビットバージョンのPowerShellになります。
Window11は、64ビットなので「Windows PowerShell」「Windows PowerShell ISE」を使えば問題ありません。
Windows PowerShellはCLIツール、Windows PowerShell ISEは統合開発環境です。
検索バー以外でも、「ファイル名を指定して実行」から起動することもできます。
「Win+Rキー」のショートカットでファイル名を指定が開くので、以下のコマンドでWindows PowerShellを起動できます。
powershell
「Windows PowerShell ISE」の場合は、次のコマンドになります。
powershell_ise
バージョン確認
PowerShellのバージョンを確認するには次のコマンドを実行します。
$PSVersionTable
実行すれば次のように表示されます。
Name Value
---- -----
PSVersion 5.1.26100.2161
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.26100.2161
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
「PSVersion 5.1.26100.2161」部分がバージョンになります。
コマンドレット
PowerShellのコマンドは「コマンドレット」と呼ばれ、「動詞 – 名詞」という形式で定義されています。
例えば、Get-Commandを使えばPowerShellのコマンドの一覧を確認することができます。
Get-Command
コマンドのヘルプを確認するには、Get-Helpを使います。
Get-Help [[-Name] <string>]
例えば、Get-Helpを使ってGet-Commandのヘルプを確認するには次のようにします。
Get-Help -Name Get-Command
実行すれば次のような内容が確認できます。
名前
Get-Command
構文
Get-Command [[-ArgumentList] <Object[]>] [<CommonParameters>]
Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>] [<CommonParameters>]
エイリアス
gcm
エイリアスは、コマンドレットの代替名または短縮名です。gcmを使ってもGet-Commandと同じ結果が得られます。
「Full」を使うことでさらに詳しい説明を確認することができます。
Get-Help -Name Get-Command -Full
現在のディレクトリを取得
現在のディレクトリのパスを取得するには「Get-Location」を使います。
Get-Location
Path
----
C:\Users\User
- gl
- pwd
現在のディレクトリの変更
現在のディレクトリのパスを変更するには「Set-Location」を使います。
次のコマンドを実行すれば、カレントディレクトリが「C:\Users\User\desktop」に変更できます。
Set-Location -Path C:\Users\User\desktop
- sl
- cd
- chdir
先ほどのコマンドでは絶対パスで使用しましたが、相対パスでディレクトリを変更することもできます。
相対パスでは、「.(ピリオド)」は現在のディレクトリを表し、「..(ピリオド2つ)」は現在のディレクトリの親ディレクトリを表します。
次のコマンドでは、現在のディレクトリの親ディレクトリに変更します。
PS C:\Users\Users> Set-Location -Path ..
PS C:\Users>
ディレクトリ内の表示
ディレクトリ内のフォルダーとファイルの一覧を表示するには「Get-ChildItem」を使います。
Get-ChildItem
- gci
- ls
- dir
Pathを使えば、特定のパスの一覧を表示することができます。
次のコマンドは、Cドライブのフォルダーとファイルの一覧を表示できます。
Get-ChildItem -Path C:\
フォルダーとファイルの作成
フォルダーやファイルを作成するには「New-Item」を使います。
New-Item -Name <string>
- ni
次のコマンドを実行すれば、現在のディレクトリに「test.txt」というファイルが作成されます。
New-Item -Name "test.txt"
「ItemType」でフォルダーかファイルかを指定でき、次のコマンドでも同様の結果になります。
New-Item -Name "test.txt" -ItemType "file"
フォルダを作成する場合は、「ItemType」で「directory」を指定します。
New-Item -Name "test" -ItemType "directory"
「Path」を使えば、特定のディレクトリに作成することができます。
次のコマンドでは、Cドライブに「test」というフォルダーを作成します。
New-Item -Path "C:\" -Name "test" -ItemType "directory"
ファイルを上書きで作成したいときには「Force」を使います。
New-Item -Name "test.txt" -ItemType "file" -Force
すでにあるフォルダーと同じ名前のフォルダーを「Force」を使って作成しても、フォルダーは上書きされません。
フォルダーやファイルの削除
フォルダーやファイルを削除するには「Remove-Item」を使います。
Remove-Item [-Path] <string[]>
- ri
- rm
- rmdir
- del
- erase
- rd
次のコマンドでは、現在のディレクトリの「test.txt」を削除します。
Remove-Item -Path ".\test.txt"
フォルダーに入っているファイルごとフォルダーを削除するには、「Recurse」を使います。
Remove-Item -Path ".\Folder" -Recurse
フォルダーやファイルのコピー
フォルダーやファイルをコピーするには「Copy-Item」を使います。
Copy-Item [-Path] <string[]> [[-Destination] <string>]
- cpi
- cp
- copy
フォルダーごとコピーするには、「Recurse」を使います。
次のコマンドは、現在のディレクトリの「Folder」を「test」内にコピーします。
Copy-Item -Path ".\Folder" -Destination ".\test"
「Path」にファイルを指定すれば、ファイルをコピーすることができます。
Copy-Item -Path ".\Folder\file.txt" -Destination ".\test"
「Destination」にファイル名を書くことで名前を変更することができます。
次のコマンドは、「file.txt」をコピーして名前を「copyFile.txt」にします。
Copy-Item -Path ".\Folder\file.txt" -Destination ".\test\copyFile.txt"