PowerShellの基本!!フォルダーとファイルの操作

office-desk プログラミング

PowerShellとは

PowerShellは、Windowsを効率的に操作するためのコマンドラインシェル、スクリプト言語です。

Windowsにはプレインストールされており、従来のコマンドプロンプトよりも強力で、Windowsの管理の自動化などをすることができます。

PowerShellの起動

検索バーに「PowerShell」と入力すればPowerShellが見つかります。

Search-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"

参考

PowerShellの習得 PowerShell 101 – Microsoft Learn

PowerShellの習得 サンプルのスクリプト – Microsoft Learn

タイトルとURLをコピーしました