Powershellはディレクトリからのみファイルを削除します


14

D:\ MyTempフォルダー内のすべてのファイル(ディレクトリではなく)を削除しようとしています。

Remove-Item "D:\MyTemp"
Remove-Item "D:\MyTemp\*"

ただし、チェックすると、すべてのファイルが残っています。
私は何が欠けていますか?

回答:


18

これを試して:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer }

ここで見つけました:https : //superuser.com/questions/150748/have-powershell-get-childitem-return-files-only

指定したディレクトリ内のすべてのファイルを削除するには(サブディレクトリを無視):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }

1
これは、現在のディレクトリ内のファイルのみをリストします
-SteB

私の悪い、あなたが再帰をしたいかどうかはわかりませんでした。オリジナルを編集します。Get-ChildItemコマンドに-recurseを追加するだけでよい
ボーン

これは機能します(サブディレクトリを無視して、指定されたディレクトリからのみファイルを削除します):Remove-Item "D:\ MyTemp \ *。*" | どこ { !$ _。PSIsContainer}
-SteB

それは素晴らしいことです。喜んでくれました。
ボーン

SteBについては申し訳ありませんが、Remove-Itemを含めるのを忘れたことがわかりました。長い一日になるでしょう!
ボーン

12

受け入れられた答えは私にはうまくいきませんでしたが、代わりに私は必要でした:

Get-Childitem -File | Foreach-Object {Remove-Item $_.FullName}

フォルダーとファイルを含めるには、次を追加します-Recurse

Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}

1
この削除サブディレクトリからのファイルだけでなく-おそらくないOPが意図したもの...
ロビーディー

1
この答えは受け入れられるべきです。私はあなたを選びます!
テオマンshipahi


0

@bourneはほとんどそれを持っていました:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item

3
これは質問に対する答えを提供しません。十分な評判たら、投稿コメントできるようになります。代わりに、askerからの説明を必要としない回答を提供してください。- レビューから
rnxrx

答えが得られないのはどういう意味ですか?それは何をするためのものか?ページ上の唯一の完全な回答です。
モルデカイ

それは自給自足の答えではありません。回答のポイントまでは、別の回答に対する修正であり、コメントとして含める必要があります。
rnxrx

すみません、私はあなたがpowershellを理解していないと思います。私は別の答えを参照してくださいという理由だけで、それは、私の任意の少ない「自給自足」ことはありません
モルデハイ

他の回答で問題を説明して、コマンドにすることもできます。そうしないと、あなたのPowerShellコマンドが何をするのかを説明することがあります
デニス・ノルティ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.