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.