PowerShellを使用すると、コマンド1つで簡単にファイルやフォルダを削除できます。その代表的なコマンドが Remove-Item です。
本記事では、PowerShellの Remove-Item コマンドを活用し、ファイルやフォルダを効率的に削除する方法を詳しく解説します。また、安全に使用するためのオプションや注意点も紹介します。初心者でも分かりやすいように具体的なサンプルコードを交えて説明していきます。
Remove-Item
コマンドは、PowerShellでファイルやフォルダを削除するための基本的なコマンドです。
Remove-Item -Path <削除対象のパス>
Remove-Item -Path "C:\Users\User\Desktop\sample.txt"
このコマンドを実行すると、指定した sample.txt
ファイルが削除されます。
-Path
パラメータを使って、削除したいファイルやフォルダのパスを指定します。
Remove-Item -Path "C:\temp\file.txt"
Remove-Item -Path "C:\temp\folder"
Remove-Item -Path "C:\temp\*.log"
→ C:\temp
内の .log
ファイルをすべて削除Remove-Item
はデフォルトでフォルダが空でないと削除できません。サブフォルダを含めてフォルダごと削除するには -Recurse
オプションを使います。
Remove-Item -Path "C:\temp\MyFolder" -Recurse
通常、読み取り専用のファイルやフォルダは削除できませんが、-Force
を使用すると削除できます。
Remove-Item -Path "C:\temp\read-only-file.txt" -Force
削除時に確認を求める場合は -Confirm
を使用します。
Remove-Item -Path "C:\temp\data.txt" -Confirm
このオプションを付けると、実行時に “本当に削除しますか?” という確認が表示されます。
Remove-Item
の実行結果を確認したいが、実際には削除したくない場合に -WhatIf
を使います。
Remove-Item -Path "C:\temp\testfile.txt" -WhatIf
実際には削除されず、どのファイルが削除されるかを確認できます。
例えば、C:\Logs
フォルダ内の30日以上前のログファイル(拡張子 .log)を削除する場合、以下のスクリプトを使用します。
$limit = (Get-Date).AddDays(-30)
Get-ChildItem -Path "C:\Logs" -Filter "*.log" | Where-Object { $_.LastWriteTime -lt $limit } | Remove-Item -Force
このスクリプトは、
C:\Logs
フォルダの .log
ファイルを取得Remove-Item -Force
で削除削除時にエラーが発生してもスクリプトを継続させる場合、Try-Catch
を使用します。
try {
Remove-Item -Path "C:\temp\important.txt" -Force -ErrorAction Stop
} catch {
Write-Host "削除に失敗しました: $_"
}
Remove-Item
は実行すると即座にファイルを削除します。取り消しできないため、削除前に -WhatIf
を活用して確認するのが安全です。
ワイルドカード (*
など) を使う場合は、削除対象を慎重に確認しましょう。
Remove-Item -Path "C:\Important\*" -Recurse
このようなコマンドは、重要なファイルを全て削除するリスクがあるため注意が必要です。
システム関連のファイルやフォルダを削除する場合、管理者権限で PowerShell を実行する必要があります。
PowerShell の Remove-Item
コマンドを使えば、ファイルやフォルダの削除を効率化できます。ただし、強力なコマンドであるため、誤って必要なデータを削除しないよう注意が必要です。
Remove-Item -Path "ファイルパス"
-Recurse
-Force
-Confirm
や -WhatIf
適切なオプションを活用して、安全に Remove-Item
を使いこなしましょう!