PowerShellはWindows環境で使える強力なスクリプト言語であり、ファイル操作を自動化するのに最適です。日々の作業を効率化するために、PowerShellを活用できる場面は多くあります。本記事では、PowerShellのスクリプトの基本的な作り方を解説し、ファイル操作に関する実践的なスクリプト例を3つ紹介します。
目次
PowerShellスクリプトの基本
スクリプトの作成と実行方法
PowerShellのスクリプトは、拡張子「.ps1」のファイルに記述して実行します。基本的な作成・実行手順は以下のとおりです。
- スクリプトファイルの作成
- メモ帳やVSCodeを開き、拡張子を「.ps1」にして保存する。
- スクリプトの実行ポリシーを確認
- PowerShellを管理者として開き、以下のコマンドを実行する。
Get-ExecutionPolicy
Restricted
となっている場合は、以下のコマンドで変更可能。Set-ExecutionPolicy RemoteSigned
- PowerShellを管理者として開き、以下のコマンドを実行する。
- スクリプトの実行
cd
コマンドでスクリプトの保存場所へ移動し、以下を実行。.\script.ps1
実践例①:指定フォルダ内のファイル一覧を取得
スクリプト概要
特定のフォルダ内にあるファイルの一覧を取得し、テキストファイルに出力するスクリプトです。
スクリプトコード
# フォルダのパスを指定
$folderPath = "C:\Temp"
$outputFile = "C:\Temp\FileList.txt"
# 指定フォルダ内のファイル一覧を取得し、テキストに出力
Get-ChildItem -Path $folderPath | Select-Object Name, Length, LastWriteTime | Format-Table -AutoSize | Out-File -FilePath $outputFile
Write-Host "ファイル一覧が $outputFile に保存されました。"
解説
Get-ChildItem
を使用して指定フォルダ内のファイルを取得。Select-Object
でファイル名、サイズ、最終更新日を取得。Out-File
でテキストファイルに出力。
実践例②:ファイルのバックアップを作成
スクリプト概要
指定したフォルダ内のファイルを別のフォルダにコピーし、バックアップを作成するスクリプトです。
スクリプトコード
# バックアップ元と先のフォルダを指定
$sourceFolder = "C:\Temp"
$backupFolder = "C:\Backup"
# バックアップフォルダが存在しない場合は作成
if (!(Test-Path -Path $backupFolder)) {
New-Item -ItemType Directory -Path $backupFolder
}
# ファイルをコピー
Copy-Item -Path "$sourceFolder\*" -Destination $backupFolder -Recurse
Write-Host "バックアップが完了しました。"
解説
Test-Path
でバックアップフォルダの存在確認。New-Item
でフォルダを作成(存在しない場合)。Copy-Item
でファイルをコピー。
実践例③:古いファイルを自動削除
スクリプト概要
指定フォルダ内で30日以上経過した古いファイルを自動的に削除するスクリプトです。
スクリプトコード
# フォルダのパスを指定
$targetFolder = "C:\Temp"
$days = 30
# 現在の日付を取得
$limitDate = (Get-Date).AddDays(-$days)
# 古いファイルを削除
Get-ChildItem -Path $targetFolder | Where-Object { $_.LastWriteTime -lt $limitDate } | Remove-Item -Force
Write-Host "$days 日以上前のファイルを削除しました。"
解説
Get-Date
で現在の日付を取得し、削除基準の日付を計算。Where-Object
で基準日より古いファイルをフィルタリング。Remove-Item
で該当ファイルを削除。
まとめ
PowerShellは、ファイルの管理を効率的に行うための強力なツールです。今回紹介したスクリプトを活用すれば、ファイル一覧の取得、バックアップ、不要ファイルの削除といった作業を自動化できます。自分の業務に合わせてスクリプトをカスタマイズし、作業の効率化を図りましょう!