Program PowerShell usuwa pliki tylko z katalogu


14

Próbuję usunąć wszystkie pliki (ale nie katalogi) z folderu D: \ MyTemp, próbowałem:

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

Jednak gdy sprawdzam, wszystkie pliki nadal tam są.
czego mi brakuje?

Odpowiedzi:


18

Spróbuj tego:

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

Znalazłem to tutaj: /superuser/150748/have-powershell-get-childitem-return-files-only

Aby usunąć wszystkie pliki tylko z określonego katalogu (ignorując podkatalogi):

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

1
Wyświetla tylko plik w bieżącym katalogu
— SteB

Mój zły, nie byłem pewien, czy chcesz się powtórzyć. Zmienię oryginał. Możesz po prostu dodać -recurse do komendy Get-ChildItem
— bourne

Działa to (usuwaj tylko pliki z określonego katalogu, ignorując podkatalogi): Usuń element „D: \ MyTemp \ *. *” | Gdzie { ! $ _. PSIsContainer}
— SteB

To wspaniale. Cieszę się, że to działa.
— Bourne

Przepraszam za SteB, właśnie zauważyłem, że zapomniałem dołączyć element usuwania. To będzie długi dzień, wow!
— Bourne

12

Przyjęta odpowiedź nie działała dla mnie, zamiast tego potrzebowałem:

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

Aby dołączyć foldery, a także pliki, dodaj -Recurse:

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

1
Usuwa to również pliki z podkatalogów - być może nie to, co zamierzał OP ...
— Robbie Dee

1
Ta odpowiedź powinna zostać zaakceptowana. Wybieram ciebie!
— Teoman shipahi


0

@bourne prawie to miał:

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

3
To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować dowolny post ; zamiast tego podaj odpowiedzi, które nie wymagają wyjaśnienia od pytającego . - Z recenzji
— rnxrx

Co masz na myśli, że nie daje odpowiedzi? Co to robi? Jest to jedyna pełna odpowiedź na stronie.
— Mordechai,

To nie jest samowystarczalna odpowiedź. Do momentu twojej odpowiedzi jest to poprawka do innej odpowiedzi i powinna zostać uwzględniona jako komentarz.
— rnxrx

przepraszam, chyba nie rozumiesz PowerShell. Tylko dlatego, że odnoszę się do innej odpowiedzi, nie czyni mnie mniej „samowystarczalną”,
— Mordechai

możesz wyjaśnić problem drugą odpowiedzią, czyniąc z niego polecenie. W przeciwnym razie możesz wyjaśnić, co robi Twoje polecenie Powershell
— Dennis Nolte,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.