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?

SteB
źródło

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 }
kres
źródło
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}
79E09796
źródło
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
4

Już prawie byłeś, potrzebujesz:

Remove-Item "D:\MyTemp\*.*"
Robbie Dee
źródło
0

@bourne prawie to miał:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item
Mordechaj
źródło
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,