Réponses:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore
, bien que cela masque également d'autres erreurs.
Remove-Item './folder/*'
. Si vous voulez vraiment effacer uniquement les fichiers de tous les dossiers, vous pouvez répertorier toutes les feuilles et les diriger vers l'applet de commande Remove-ItemGet-ChildItem -Recurse -File | Remove-Item
Dans PowerShell, supprimez la réponse forcée : l'aide Remove-Item indique:
Le paramètre Recurse de cette applet de commande ne fonctionne pas correctement
La commande de contournement est
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
Et puis supprimez le dossier lui-même
Remove-Item $Destination -Force
Remove-Item -Recurse -Force $dir
et cela fonctionne.
Get-Help Remove-Item
documentation étendue de Windows 10 obtenue après l' Update-Help
exécution ...
Cela a fonctionné pour moi:
Remove-Item $folderPath -Force -Recurse -ErrorAction SilentlyContinue
Ainsi, le dossier est supprimé avec tous les fichiers qu'il contient et il ne produit pas d'erreur si le chemin d'accès au dossier n'existe pas.
Mise à jour 2018
Dans la version actuelle de PowerShell (testée avec la v5.1 sur Windows 10 1809), on peut utiliser la syntaxe Unix plus simple rm -R .\DirName
pour supprimer silencieusement le répertoire .\DirName
avec tous les sous-répertoires et fichiers qu'il peut contenir. En fait, de nombreuses commandes Unix courantes fonctionnent de la même manière dans PowerShell que dans une ligne de commande Linux.
rm -R .\DirName\*
pour nettoyer le dossier sans supprimer le dossier lui
Pour supprimer du contenu sans dossier, vous pouvez utiliser les éléments suivants:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Delete
n'a pas fonctionné dans PowerShell ISE , mais il fonctionnait via la CLI PowerShell standard.
J'espère que ça aide. Ça me rendait banane.
PowerShell CLI
et non lors du développement dans PowerShell ISE
.
Ci-dessous, une implémentation copiable de la réponse de Michael Freidgeim
function Delete-FolderAndContents {
# http://stackoverflow.com/a/9012108
param(
[Parameter(Mandatory=$true, Position=1)] [string] $folder_path
)
process {
$child_items = ([array] (Get-ChildItem -Path $folder_path -Recurse -Force))
if ($child_items) {
$null = $child_items | Remove-Item -Force -Recurse
}
$null = Remove-Item $folder_path -Force
}
}
Étant donné que mon répertoire était dans C: \ users, j'ai dû exécuter mon PowerShell en tant qu'administrateur,
del ./[your Folder name] -Force -Recurse
cette commande a fonctionné pour moi.
del
est un alias pour Remove-Item
.
$LogPath = "E:\" # Your local of directories
$Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "*temp*"}
foreach ($Folder in $Folders)
{
$Item = $Folder.FullName
Write-Output $Item
Remove-Item $Item -Force -Recurse
}
Si vous avez votre dossier en tant qu'objet, disons que vous l'avez créé dans le même script en utilisant la commande suivante:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Ensuite, vous pouvez simplement le supprimer comme ça dans le même script
$folder.Delete($true)
$ true - états pour la suppression récursive
$LogPath = "E:\" # Your local of directories
$Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "*grav*"} # Your keyword name directories
foreach ($Folder in $Folders)
{
$Item = $Folder.FullName
Write-Output $Item
Remove-Item $Item -Force -Recurse -ErrorAction SilentlyContinue
}