Respostas:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore
, embora isso oculte outros erros.
Remove-Item './folder/*'
. Se você realmente quer para limpar arquivos somente de todas as pastas que você pode listar todas as folhas e canalizá-lo para o cmdlet Remove-ItemGet-ChildItem -Recurse -File | Remove-Item
No PowerShell, remova force force answer : help Remove-Item diz:
O parâmetro Recurse neste cmdlet não funciona corretamente
O comando para solução alternativa é
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
E exclua a própria pasta
Remove-Item $Destination -Force
Remove-Item -Recurse -Force $dir
e funciona.
Get-Help Remove-Item
documentação obtidos após Update-Help
é executado ...
Atualização de 2018
Na versão atual do PowerShell (testada com a v5.1 no Windows 10 1809), pode-se usar a sintaxe Unix mais simples rm -R .\DirName
para excluir silenciosamente o diretório .\DirName
com todos os subdiretórios e arquivos que ele pode conter. De fato, muitos comandos comuns do Unix funcionam da mesma maneira no PowerShell e em uma linha de comando do Linux.
rm -R .\DirName\*
para limpar a pasta sem excluir a própria pasta
Para excluir conteúdo sem uma pasta, você pode usar o seguinte:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Delete
não funcionou no PowerShell ISE , mas funcionou através da CLI normal do PowerShell.
Eu espero que isso ajude. Isso estava me deixando bannana.
PowerShell CLI
e não durante o desenvolvimento PowerShell ISE
.
Abaixo está uma implementação passível de cópia da resposta 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 meu diretório estava em C: \ users, tive que executar meu powershell como administrador,
del ./[your Folder name] -Force -Recurse
esse comando funcionou para mim.
del
é um apelido 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
}
Se você possui sua pasta como objeto, digamos que você a criou no mesmo script usando o próximo comando:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Em seguida, você pode removê-lo assim no mesmo script
$folder.Delete($true)
$ true - estados para remoção 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
}