はじめに
HDDに保存したMacのデータをWindowsから読み込んだら._
から始まる名前のファイルがたくさんあって、PowerShellで削除することにしたのですが、コマンドプロンプトと同じ感覚で使おうとしたら、仕様がわからずいろいろ調べた結果をメモとして
※一応自分の環境で動作確認はしていますが、想定していないファイルが削除されてしまっても責任は負いかねますm(_ _)m。
動作環境
- OS Windowds 10 1803
- PowerShell 5.1.17134.228
削除コマンド
エイリアスで短いコマンドで実行できますが、あえてコマンドレットで……
-
._
から始まる名前のファイルを削除するコマンド Remove-Item x:\* -recurse -include ._*
を実行することで._
から始まる名前のファイルを削除することができました。
(x:\
は削除対象のドライブ)
なお、PowerShellは管理者権限で起動しないと、コマンドの最後に-Force
オプションがいるかもしれません。
解説
一応、解説をしておくと……
-
Remove-Item
-
対象のファイルを削除するコマンドです。
-
x:\*
-
削除対象のディレクトリ・ファイルです。ワイルドカードを使ってxドライブ全体を対象にしています。
x:\aaa.txt
のようにファイルを指定することもできます。 -
-recurse
-
再帰的にコマンドを実行します。
-
-include
-
ここがポイントです!そのままだとxドライブのファイルすべてが削除されてしまいますが、
-include [arg]
で指定した引数に合致するファイルだけを削除することができます。ここでは._
から始まる名前のファイルを削除したいので、ワイルドカードを使って引数に._*
を指定しています。
おわりに
職場ではWindows 7なこともあって、コマンドプロンプトが現役なのですが、ゆくゆくはPowerShellになるのでしょうか?
ちゃんとは調べていないですが、PowerShellは機能が豊富みたいなので使いこなせるようになりたいです。