Как тихо удалить каталог с содержимым в PowerShell - PullRequest
192 голосов
/ 27 октября 2011

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

Ответы [ 10 ]

294 голосов
/ 27 октября 2011
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
55 голосов
/ 26 января 2012

Из PowerShell удалить принудительный ответ : help Remove-Item говорит:

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

команда для обхода:

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

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

Remove-Item $Destination -Force 
31 голосов
/ 19 апреля 2016

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

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

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

10 голосов
/ 12 февраля 2014

Для удаления содержимого без папки вы можете использовать следующее:

Remove-Item "foldertodelete\*" -Force -Recurse
9 голосов
/ 22 октября 2018

2018 Обновление

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

5 голосов
/ 29 июня 2015

rm -Force -Recurse -Confirm:$false $directory2Delete не работал в PowerShell ISE , но работал через обычный интерфейс командной строки PowerShell.

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

2 голосов
/ 25 мая 2016

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

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
    }
}
0 голосов
/ 01 июня 2019

Поскольку мой каталог находился в C: \ users, я должен был запустить мой powershell от имени администратора,

del ./[your Folder name] -Force -Recurse

эта команда работала для меня.

0 голосов
/ 19 сентября 2017

$LogPath = "E:\" # Your local of directories $Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "<em>grav</em>"} # Your keyword name directories</p> <p>foreach ($Folder in $Folders) { $Item = $Folder.FullName Write-Output $Item Remove-Item $Item -Force -Recurse -ErrorAction SilentlyContinue }

0 голосов
/ 19 сентября 2017
$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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...