Powershell xóa các tập tin từ thư mục


14

Tôi đang cố xóa tất cả các tệp (nhưng không phải thư mục) trong thư mục D: \ MyTemp, tôi đã thử:

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

Tuy nhiên, khi tôi kiểm tra, tất cả các tập tin vẫn còn đó.
Tôi đang thiếu gì?

Câu trả lời:


18

Thử đi:

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

Tìm thấy nó ở đây: /superuser/150748/have-powershell-get-childitem-return-files-only

Để chỉ xóa tất cả các tệp trong thư mục được chỉ định (bỏ qua các thư mục con):

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

1
Điều này chỉ liệt kê tập tin trong thư mục hiện tại
SteB

Xấu của tôi, không chắc chắn nếu bạn muốn làm lại. Tôi sẽ chỉnh sửa bản gốc. Bạn chỉ có thể thêm -recurse vào lệnh Get-ChildItem
bourne

Điều này hoạt động (chỉ xóa các tệp khỏi thư mục được chỉ định, bỏ qua các thư mục con): Xóa-Mục "D: \ MyTemp \ *. *" | Ở đâu { ! $ _. PSIsContainer}
SteB

Thật tuyệt. Tôi vui vì bạn đã làm nó hoạt động.
bourne

Xin lỗi btw SteB, tôi chỉ nhận thấy rằng tôi đã quên bao gồm cả mục Xóa. Sẽ là một ngày dài wow!
bourne

12

Câu trả lời được chấp nhận không có tác dụng với tôi, thay vào đó tôi cần:

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

Để bao gồm các thư mục cũng như các tệp, thêm -Recurse:

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

1
Điều này cũng xóa các tệp khỏi thư mục con - có thể không phải là những gì OP dự định ...
Robbie Dee

1
Câu trả lời này nên được chấp nhận một. Tôi chọn bạn!
Teoman shipahi

4

Bạn đã ở gần đó, bạn chỉ cần:

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

0

@bourne gần như đã có nó:

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

3
Điều này không cung cấp một câu trả lời cho câu hỏi. Một khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào ; thay vào đó, cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi . - Từ đánh giá
rnxrx

Bạn có nghĩa là nó không cung cấp một câu trả lời? Nó làm gì? Đây là câu trả lời duy nhất đầy đủ trên trang.
Mordechai

Đó không phải là một câu trả lời tự túc. Theo quan điểm của bạn, đó là sự điều chỉnh cho câu trả lời khác và nên được đưa vào như một nhận xét.
rnxrx

xin lỗi, tôi đoán bạn không hiểu powershell. Chỉ vì tôi đề cập đến một câu trả lời khác, nó không làm cho tôi bớt "tự túc",
Mordechai

bạn có thể muốn giải thích vấn đề bằng câu trả lời khác, biến nó thành một lệnh. Nếu không, bạn có thể muốn giải thích lệnh Powershell của bạn làm gì
Dennis Nolte
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.