Saya ingin memindai direktori (tidak ada subs) dan menghapus file dengan ekstensi .avi
saya mencoba sintaks ini, tetapi tidak ada kesalahan yang dilemparkan, dan tidak ada file yang dihapus. Ini adalah kode yang saya coba
get-childitem 'C:\Users\ramrod\Desktop\Firefly' -include *.avi | foreach ($_) {remove-item $_.fullname}
Apa yang harus diubah untuk menghapus semua .avi
file dari folder?
powershell
powershell-5.0
pengguna2676140
sumber
sumber
rm *.avi
? (Ya, itu sintaks PowerShell yang valid karenarm
merupakan alias daridel
.rm
dandel
keduanya aliasRemove-Item
cmdlet.Jawaban:
Gunakan
del *.<extension>
atau salah satu dari alias itu (sepertirm
, jika Anda lebih terbiasa dengan bash).Jadi itu akan
del *.avi
menghapus semua file yang berakhir di.avi
direktori kerja saat ini.Gunakan
del <directory>\*.<extension>
untuk menghapus file di direktori lain.sumber
ls *.avi -Recurse | foreach {rm $_}
Dengan asumsi metode yang disukai untuk membuka instance Powershell di direktori, versi generiknya adalah sebagai berikut:
Untuk versi spesifik direktori:
Tambahkan
-Recurse
keGet-ChildItem
untuk mempengaruhi semua folder yang ada.Contoh:
sumber
The
Remove-Item
commandlet harus semua yang Anda butuhkan. Cukup lewati folder root di mana file avi ada dan berikanrecurse
flag bersama dengan filter:Ini harus mengeksekusi lebih cepat daripada menemukan file melalui
Get-ChildItem
dan memohonRemove-Item
untuk masing-masing.Menambahkan
-WhatIf
saklar akan meminta Anda sebelum menghapus setiap file, yang lebih aman bagi orang-orang yang kurang nyaman dengan PowerShell.sumber
-WhatIf
switch yang tidak perlu. Saya mengirimkan hasil edit untuk jawaban ini. +1Remove-Item
Commandlet adalah yang Anda butuhkan, dan berjalan lebih cepat dari jawaban yang saat ini diterima.-whatif
untuk memverifikasi bahwa Anda hanya akan menghapus file yang ingin Anda hapus. Dan terutama ketika menawarkan perintah penghapusan kepada mereka yang memiliki keahlian teknis yang tidak diketahui. Terbaik untuk menjaga roda pelatihan tetap hidup.Misalkan ada beberapa file teks dalam direktori saat ini.
dir * -include *.txt
&dir *.txt
Bekerja seperti yang diharapkan tetapidir -include *.txt
tidak memberikan apa-apa. Alasannya dijelaskan dengan baik pada Stack Overflow .Perintah yang diperbaiki:
dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach {del $_}
sumber
Ini akhirnya berhasil untuk saya - mencoba semua di atas dan nada.
Tentu dua-kekuatan tidak diperlukan tetapi itulah yang bekerja sehingga itulah yang saya bertahan.
sumber
coba ini
sumber