ディレクトリをスキャンし(サブはありません)、拡張子が.avi
のファイルを削除したいのですが、この構文を試しましたが、エラーが発生せず、ファイルが削除されません。これは私が試したコードです
get-childitem 'C:\Users\ramrod\Desktop\Firefly' -include *.avi | foreach ($_) {remove-item $_.fullname}
フォルダからすべての.avi
ファイルを削除するには、何を変更する必要がありますか?
使用する del *.<extension>
またはそのエイリアスの1つ(bashに慣れている場合はrm
など)。
だからそれはdel *.avi
で終わるすべてのファイルを削除するには.avi
現在の作業ディレクトリ。
使用する del <directory>\*.<extension>
他のディレクトリにあるファイルを削除します。
ディレクトリでPowershellインスタンスを開くための推奨される方法を想定すると、一般的なバージョンは次のようになります。
Get-ChildItem *.avi | foreach { Remove-Item -Path $_.FullName }
ディレクトリ固有のバージョンの場合:
Get-ChildItem -Path 'C:\Users\ramrod\Desktop\Firefly' *.avi | foreach { Remove-Item -Path $_.FullName }
加える -Recurse
からGet-ChildItem
含まれるすべてのフォルダに影響します。
例:
Get-ChildItem *.avi -Recurse | foreach { Remove-Item -Path $_.FullName }
Remove-Item
コマンドレットで十分です。 aviファイルが存在するルートフォルダを渡して、フィルタとともにrecurse
フラグを渡すだけです。
Remove-Item 'C:\Users\ramrod\Desktop\Firefly\*' -recurse -Include *.avi
これは、Get-ChildItem
を介してファイルを検索し、ファイルごとにRemove-Item
を呼び出すよりも高速に実行されます。
-WhatIf
スイッチを追加すると、各ファイルを削除する前にプロンプトが表示されます。これは、PowerShellに慣れていない人にとっては安全です。
これを試して
Remove-Item "c:\temp\*.txt"
これは最終的に私のためにそれをしました-上記すべてとnadaを試してみました。
get-childitem "<drive>:\<folder>" -recurse -force -include *.<ext> | remove-item -force
確かに2つの力は必要ありませんが、それが機能しているので、私はこだわり続けています。
現在のディレクトリにいくつかのテキストファイルがあるとします。dir * -include *.txt
&dir *.txt
は期待どおりに機能しますが、dir -include *.txt
は何も与えません。理由は Stack Overflow でよく説明されています。
修正されたコマンド:dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach {del $_}