日々の業務や作業の中で、ファイルのコピーや移動、削除、名前の変更などの操作に時間がかかっていませんか?
マウス操作やエクスプローラーでの作業は直感的で便利ですが、繰り返しの多い作業では非効率になりがちです。
そんなときに役立つのがPowerShellです。Windows標準のシェルでありながら、強力な自動化機能を備えており、ファイル操作の効率を大幅に向上させることができます。
この記事では、PowerShellを使ってファイル操作を効率化するための実用的なテクニックを具体例とともに紹介します。初心者にもわかりやすく解説していきますので、ぜひ日々の業務に取り入れてみてください。
大量のファイルを別フォルダに移すとき、エクスプローラーで一つひとつドラッグするのは面倒です。
PowerShellなら、Copy-Item
コマンドで一括コピーが簡単に行えます。
Copy-Item -Path "C:\Source\*" -Destination "D:\Backup" -Recurse
-Path
:コピー元のファイルやフォルダ-Destination
:コピー先-Recurse
:サブフォルダ内も含めてすべてコピーサーバーのバックアップや定期的な保存作業にも使える便利なコマンドです。
コピーではなくファイルの移動をしたいときは、Move-Item
を使います。
Move-Item -Path "C:\Downloads\*.pdf" -Destination "C:\Documents\PDFs"
ダウンロードフォルダから特定のファイルだけを分類して別の場所に移す、といった作業が一瞬で終わります。
スクリプトにしておけば、定期的な整理も自動化可能です。
不要になったファイルやログを手動で削除していませんか?Remove-Item
を使えば、一括削除ができます。
Remove-Item -Path "C:\Logs\*.log" -Force
-Force
オプションを付けることで、読み取り専用のファイルも削除可能です。-Recurse
オプションを使えば、フォルダごと削除もできます。削除の際は慎重に。スクリプトにするときはテスト環境で動作確認してから本番に使いましょう。
ファイル名をまとめて変更したいときには、ループ処理とRename-Item
の組み合わせが有効です。
$files = Get-ChildItem -Path "C:\Images" -Filter "*.jpg"
$count = 1
foreach ($file in $files) {
$newName = "Image_$count.jpg"
Rename-Item -Path $file.FullName -NewName $newName
$count++
}
このスクリプトでは、「Image_1.jpg」「Image_2.jpg」…というように連番でファイル名を一括変更しています。
商品画像や写真の整理にも便利です。
スクリプトを実行する前に、対象ファイルが存在するか確認しておくと安心です。
そのときはTest-Path
が役立ちます。
if (Test-Path "C:\Data\report.xlsx") {
Write-Output "ファイルが存在します"
} else {
Write-Output "ファイルが見つかりません"
}
削除や移動の前に確認処理を入れておくことで、誤操作によるトラブルを防げます。
テキストファイルの中身を扱いたいときは、以下のコマンドが基本です。
# 読み込み
$content = Get-Content -Path "C:\Notes\memo.txt"
# 書き込み
Set-Content -Path "C:\Notes\output.txt" -Value $content
複数ファイルを結合したり、フィルタをかけてから保存したりといった作業も、パイプラインでつなげれば簡単にできます。
最後に、よくある実用例として「バックアップファイルに日付を付けて保存する」方法をご紹介します。
$today = Get-Date -Format "yyyyMMdd_HHmmss"
$backupName = "backup_$today.zip"
Compress-Archive -Path "C:\Project" -DestinationPath "D:\Backup\$backupName"
このように日付をファイル名に含めることで、上書きの心配がなくなり、履歴管理もしやすくなります。
PowerShellを使えば、普段手作業で行っていたファイル操作を自動化・効率化することができます。
今回紹介したテクニックはどれも業務にすぐ活かせる実践的なものばかりです。
最初は簡単なスクリプトから試してみて、慣れてきたら自分専用のバッチ処理を作ってみましょう。
作業時間の短縮はもちろん、ミスの防止にもつながります。PowerShellを味方につけて、ファイル管理の達人を目指しましょう!