91 votes

Supprimer tous les fichiers d'un dossier et de ses sous-dossiers

Je veux supprimer tous les fichiers d'une structure de dossier, de sorte que je me retrouve avec une structure de dossier vide.

Cela peut-il être réalisé par lot ou par VBScript scripting ?

J'ai essayé une commande batch très basique, mais cela nécessitait que l'utilisateur autorise la suppression de chaque fichier. Ce n'était pas une solution appropriée car il y a plusieurs centaines de fichiers et cela va augmenter massivement avec le temps.

Que pouvez-vous suggérer ?

1voto

Dishant Batra Points 11

Nous pouvons supprimer tous les fichiers du dossier et de ses sous-dossiers via la commande ci-dessous.

Get-ChildItem -Recurse -Path 'D:\Powershell Practice' |Where-Object{$_.GetType() -eq [System.IO.FileInfo]} |Remove-Item

Ou

Get-ChildItem -Recurse -Path 'D:\Powershell Practice' -File | Remove-Item

0voto

dir C:\testx\ -Recurse -File | rd -WhatIf
What if: Performing the operation "Remove File" on target "C:\testx\x.txt".
What if: Performing the operation "Remove File" on target "C:\testx\bla\x.txt".

0voto

Maycon Paixão Points 1

Avec Powershell 5.1 :


$extensions_list = Get-ChildItem -Path 'C:\folder_path\' -Recurse

foreach ( $extension in $extensions_list) {

    if ($extension.Attributes -notlike "Directory") {

        Remove-Item $extension.FullName  
    }
}

Il supprime tous les itens qui ne sont pas du répertoire.

$extension.FullName = Chemin de l'élément

$extension.Attributs = Type d'élément ( répertoire ou archive )

0voto

Ste Points 981

Exemple PowerShell.

J'ai trouvé que certains chemins ne sont pas très agréables, donc en utilisant -LiteralPath fonctionne dans tous les cas.

Vous trouverez de l'aide à ce sujet sur le site Docs MS para Remove-Item .

# To delete all files within a folder and its subfolders.

$subDir = "Z:\a path to\somewhere\"

# Remove the -WhatIf and -Verbose here once you're happy with the result.
Get-ChildItem -LiteralPath $subDir -File -Recurse | Remove-Item -Verbose -WhatIf

0voto

Nereis Points 101

Si tous vos fichiers ont une extension et qu'aucun de vos dossiers n'a de point, vous pouvez procéder comme suit :

Remove-Item C:\Test\* -Include *.* -Recurse

Vérifiez le documentation officielle qui fournit de multiples exemples.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X