Как спокойно удалить каталог с содержимым в PowerShell

Можно ли с помощью PowerShell удалить какой-либо каталог, содержащий файлы, без запроса подтверждения действия?

4b9b3361

От PowerShell удалить ответ на действие: help Remove-Item говорит:

Параметр Recurse в этом командлете не работает должным образом

Командой обхода является

Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse

И затем удалите самую папку

Remove-Item $Destination -Force 
51
ответ дан 26 янв. '12 в 2:43
источник

Это сработало для меня:

Remove-Item $folderPath -Force  -Recurse -ErrorAction SilentlyContinue

Таким образом, папка удаляется со всеми файлами там, и она не создает ошибку, если путь к папке не существует.

28
ответ дан 19 апр. '16 в 1:32
источник

Чтобы удалить содержимое без папки, вы можете использовать следующее:

Remove-Item "foldertodelete\*" -Force -Recurse
9
ответ дан 12 февр. '14 в 8:18
источник

rm -Force -Recurse -Confirm:$false $directory2Delete не работал в PowerShell ISE, но работал через обычный CLI PowerShell.

Надеюсь, это поможет. Это заставляло меня bannanas.

4
ответ дан 29 июня '15 в 16:33
источник

Ниже приведена копировальная реализация ответа Майкла Фрейдзима

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
    }
}
2
ответ дан 25 мая '16 в 16:17
источник

2018 Обновление

В текущей версии PowerShell (протестировано с v5.1 в Windows 10 1809) можно использовать более простой синтаксис Unix rm -R.\DirName для rm -R.\DirName удаления каталога .\DirName со всеми подкаталогами и файлами, которые он может содержать. На самом деле многие общие команды Unix работают в PowerShell так же, как и в командной строке Linux.

1
ответ дан 22 окт. '18 в 17:35
источник

$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 }

0
ответ дан 19 сент. '17 в 23:41
источник
$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
}
0
ответ дан 19 сент. '17 в 23:34
источник