Powershell hanya menghapus file dari direktori

14

Saya mencoba menghapus semua file (tetapi bukan direktori) di D: \ MyTemp folder, saya sudah mencoba:

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

Namun, ketika saya periksa, semua file masih ada.
Apa yang saya lewatkan?

SteB
sumber

Jawaban:

18

Coba ini:

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

Ditemukan di sini: /superuser/150748/have-powershell-get-childitem-return-files-only

Untuk menghapus semua file di direktori yang ditentukan saja (mengabaikan sub-dir):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }
maksud
sumber
1
Ini hanya mencantumkan file di direktori saat ini
SteB
Sayang saya, tidak yakin apakah Anda ingin melakukan recurse. Saya akan mengedit aslinya. Anda bisa menambahkan -recurse ke perintah Get-ChildItem
bourne
Ini berfungsi (hanya menghapus file dari direktori yang ditentukan, mengabaikan sub-dir): Hapus-Item "D: \ MyTemp \ *. *" | Dimana {! $ _. PSIsContainer}
SteB
Itu keren. Senang Anda berhasil.
bourne
Maaf, SteB, saya baru sadar saya lupa menyertakan Remove-Item. Ini akan menjadi hari yang panjang wow!
bourne
12

Jawaban yang diterima tidak berhasil untuk saya, sebaliknya saya membutuhkan:

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

Untuk memasukkan folder serta file, tambahkan -Recurse:

Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}
79E09796
sumber
1
Ini menghapus file dari subdirektori juga - mungkin bukan apa yang dimaksudkan OP ...
Robbie Dee
1
Jawaban ini harus diterima satu. Aku memilihmu!
Teoman shipahi
4

Anda hampir sampai, Anda hanya perlu:

Remove-Item "D:\MyTemp\*.*"
Robbie Dee
sumber
0

@bourne hampir memilikinya:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item
Mordechai
sumber
3
Ini tidak memberikan jawaban untuk pertanyaan itu. Setelah Anda memiliki reputasi yang cukup, Anda akan dapat mengomentari setiap pos ; alih-alih, berikan jawaban yang tidak memerlukan klarifikasi dari penanya . - Dari Ulasan
rnxrx
Apa maksudmu itu tidak memberikan jawaban? Apa fungsinya? Ini adalah satu-satunya jawaban lengkap di halaman.
Mordechai
Itu bukan jawaban yang mandiri. Sampai pada titik dalam respons Anda, ini merupakan koreksi terhadap jawaban lain dan harus dimasukkan sebagai komentar.
rnxrx
maaf, saya kira Anda tidak mengerti PowerShell. Hanya karena saya merujuk pada jawaban lain, itu tidak membuat saya kurang "mandiri",
Mordechai
Anda mungkin ingin menjelaskan masalah dengan jawaban yang lain, menjadikannya perintah. Kalau tidak, Anda mungkin ingin menjelaskan apa yang dilakukan perintah Powershell Anda
Dennis Nolte