PowerShellでスクリプトを作成する方法|ファイル操作の実践例3選

PowerShellはWindows環境で使える強力なスクリプト言語であり、ファイル操作を自動化するのに最適です。日々の作業を効率化するために、PowerShellを活用できる場面は多くあります。本記事では、PowerShellのスクリプトの基本的な作り方を解説し、ファイル操作に関する実践的なスクリプト例を3つ紹介します。

PowerShellスクリプトの基本

スクリプトの作成と実行方法

PowerShellのスクリプトは、拡張子「.ps1」のファイルに記述して実行します。基本的な作成・実行手順は以下のとおりです。

  1. スクリプトファイルの作成
    • メモ帳やVSCodeを開き、拡張子を「.ps1」にして保存する。
  2. スクリプトの実行ポリシーを確認
    • PowerShellを管理者として開き、以下のコマンドを実行する。Get-ExecutionPolicy
    • Restricted となっている場合は、以下のコマンドで変更可能。Set-ExecutionPolicy RemoteSigned
  3. スクリプトの実行
    • 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は、ファイルの管理を効率的に行うための強力なツールです。今回紹介したスクリプトを活用すれば、ファイル一覧の取得、バックアップ、不要ファイルの削除といった作業を自動化できます。自分の業務に合わせてスクリプトをカスタマイズし、作業の効率化を図りましょう!

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