Respuestas:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore
, aunque eso también ocultará otros errores.
Remove-Item './folder/*'
. Si realmente desea borrar solo los archivos de todas las carpetas, puede enumerar todas las hojas y canalizarlas al cmdlet Remove-ItemGet-ChildItem -Recurse -File | Remove-Item
De PowerShell remove force answer : help Remove-Item dice:
El parámetro Recurse en este cmdlet no funciona correctamente
El comando para solucionarlo es
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
Y luego elimine la carpeta en sí
Remove-Item $Destination -Force
Remove-Item -Recurse -Force $dir
y funciona.
Get-Help Remove-Item
documentación obtenida después de Update-Help
que se ejecute ...
Actualización 2018
En la versión actual de PowerShell (probado con v5.1 en Windows 10 1809) se puede usar la sintaxis Unix más simple rm -R .\DirName
para eliminar silenciosamente el directorio .\DirName
con todos los subdirectorios y archivos que puede contener. De hecho, muchos comandos comunes de Unix funcionan de la misma manera en PowerShell que en una línea de comandos de Linux.
rm -R .\DirName\*
para limpiar la carpeta sin eliminar la carpeta en sí misma
Para eliminar contenido sin una carpeta, puede usar lo siguiente:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Delete
no funcionó en el ISE de PowerShell , pero funcionó a través de la CLI de PowerShell normal.
Espero que esto ayude. Me estaba volviendo loco.
PowerShell CLI
y no durante el desarrollo PowerShell ISE
.
A continuación se muestra una implementación copiable y pegable de la respuesta 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
}
}
Como mi directorio estaba en C: \ users, tuve que ejecutar mi PowerShell como administrador,
del ./[your Folder name] -Force -Recurse
Este comando funcionó para mí.
del
es un alias para 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 tiene su carpeta como un objeto, supongamos que la creó en el mismo script con el siguiente comando:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Luego puedes eliminarlo así en el mismo script
$folder.Delete($true)
$ true: estados para la eliminación recursiva
$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
}