Powershell supprime les fichiers uniquement du répertoire

14

J'essaie de supprimer tous les fichiers (mais pas les répertoires) du dossier D: \ MyTemp, j'ai essayé:

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

Cependant, lorsque je vérifie, tous les fichiers sont toujours là.
Qu'est-ce que je rate?

SteB
la source

Réponses:

18

Essaye ça:

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

Je l'ai trouvé ici: /superuser/150748/have-powershell-get-childitem-return-files-only

Pour supprimer tous les fichiers du répertoire spécifié uniquement (en ignorant les sous-répertoires):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }
bourne
la source
1
Cela répertorie uniquement les fichiers dans le répertoire actuel
SteB
Mon mauvais, je ne savais pas si tu voulais faire de la rechute. Je vais éditer l'original. Vous pouvez simplement ajouter -recurse à la commande Get-ChildItem
bourne
Cela fonctionne (supprimer uniquement les fichiers du répertoire spécifié, en ignorant les sous-répertoires): Remove-Item "D: \ MyTemp \ *. *" | Où { ! $ _. PSIsContainer}
SteB
C'est génial. Heureux que tu es parvenu à le faire fonctionner.
bourne
Désolé btw SteB, je viens de remarquer que j'ai oublié d'inclure le Remove-Item. Ça va être une longue journée wow!
bourne
12

La réponse acceptée n'a pas fonctionné pour moi, mais j'avais besoin de:

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

Pour inclure des dossiers ainsi que des fichiers, ajoutez -Recurse:

Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}
79E09796
la source
1
Cela supprime également les fichiers des sous-répertoires - peut-être pas ce que l'OP avait prévu ...
Robbie Dee
1
Cette réponse doit être acceptée une. Je vous ai choisis!
Teoman shipahi
4

Vous y étiez presque, vous aviez juste besoin de:

Remove-Item "D:\MyTemp\*.*"
Robbie Dee
la source
0

@bourne l'a presque:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item
Mordechai
la source
3
Cela ne fournit pas de réponse à la question. Une fois que vous avez une réputation suffisante, vous pourrez commenter n'importe quel message ; fournissez plutôt des réponses qui ne nécessitent pas de clarification de la part du demandeur . - De l'avis
rnxrx
Que voulez-vous dire qu'il ne fournit pas de réponse? Qu'est ce que ça fait? C'est la seule réponse complète sur la page.
Mordechai
Ce n'est pas une réponse auto-suffisante. Au point dans votre réponse, c'est une correction à une autre réponse et devrait être inclus en tant que commentaire.
rnxrx
désolé, je suppose que vous ne comprenez pas PowerShell. Tout simplement parce que je me réfère à une autre réponse, cela ne rend pas la mienne moins "autosuffisante",
Mordechai
vous voudrez peut-être expliquer le problème avec l'autre réponse, ce qui en fait une commande. Sinon, vous voudrez peut-être expliquer ce que fait votre commande Powershell
Dennis Nolte