Risposte:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore
, anche se questo nasconderà anche altri errori.
Remove-Item './folder/*'
. Se si desidera veramente cancellare solo i file di tutte le cartelle, è possibile elencare tutte le foglie e reindirizzarle al cmdlet Remove-ItemGet-ChildItem -Recurse -File | Remove-Item
Da PowerShell rimuovere la risposta forzata : aiuto Rimuovi-elemento dice:
Il parametro Recurse in questo cmdlet non funziona correttamente
Il comando per risolvere il problema è
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
E quindi eliminare la cartella stessa
Remove-Item $Destination -Force
Remove-Item -Recurse -Force $dir
e funziona.
Get-Help Remove-Item
documentazione estesa di Windows 10 ottenuta dopo l' Update-Help
esecuzione ...
Aggiornamento 2018
Nella versione corrente di PowerShell (testato con v5.1 su Windows 10 1809) è possibile utilizzare la sintassi Unix più semplice rm -R .\DirName
per eliminare silenziosamente la directory .\DirName
con tutte le sottodirectory e i file che può contenere. In effetti molti comandi Unix comuni funzionano allo stesso modo in PowerShell come in una riga comandi Linux.
rm -R .\DirName\*
per ripulire la cartella senza eliminare la cartella stessa
Per eliminare il contenuto senza una cartella è possibile utilizzare quanto segue:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Delete
non ha funzionato in PowerShell ISE , ma ha funzionato tramite la normale CLI di PowerShell.
Spero che aiuti. Mi stava facendo impazzire.
PowerShell CLI
e non durante lo sviluppo in PowerShell ISE
.
Di seguito è riportata un'implementazione copia-incollabile della risposta di 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
}
}
Dato che la mia directory era in C: \ utenti dovevo eseguire il mio powershell come amministratore,
del ./[your Folder name] -Force -Recurse
questo comando ha funzionato per me.
del
è un alias per 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
}
Se hai la tua cartella come oggetto, diciamo che l'hai creata nello stesso script usando il comando successivo:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Quindi puoi semplicemente rimuoverlo in questo modo nello stesso script
$folder.Delete($true)
$ true: indica la rimozione ricorsiva
$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
}