
インストールしたベータ版ソフトウェアが誤って各フォルダに100文字を超えるファイル名のログファイルを作成してしまった。1つずつ削除するのに非常に長い時間がかかる。
100 文字未満のファイルを削除せずに、名前が 100 文字以上のすべてのファイルを一括削除することは可能ですか?
答え1
PowerShell で、次のようにファイルがリストされる場合:
gci -file -recurse | ?{$_.name.length -gt 100} | select name | ft -Wrap
すると、それらは削除されます:
gci -file -recurse | ?{$_.name.length -gt 100} | remove-item
答え2
PowerShellで以下のコマンドを実行します。
ls | where { $_.Name.Length -ge 100 } | rm -WhatIf
ls
の別名の1つですGet-ChildItem
そしてrm
Remove-Item
削除したいファイルが現在のフォルダにない場合は、フォルダへのフルパスをls
ファイルが正しいことを確認したら、-WhatIf
実際の削除を行うために部分を削除します。サブディレクトリ内のファイルも削除したい場合は-Recurse
、ls