Можно ли с помощью PowerShell удалить какой-либо каталог, содержащий файлы, без запроса подтверждения действия?
Как спокойно удалить каталог с содержимым в PowerShell
Ответ 1
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
Ответ 2
От PowerShell удалить ответ на действие: help Remove-Item говорит:
Параметр Recurse в этом командлете не работает должным образом
Командой обхода является
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
И затем удалите самую папку
Remove-Item $Destination -Force
Ответ 3
Это сработало для меня:
Remove-Item $folderPath -Force -Recurse -ErrorAction SilentlyContinue
Таким образом, папка удаляется со всеми файлами там, и она не создает ошибку, если путь к папке не существует.
Ответ 4
Чтобы удалить содержимое без папки, вы можете использовать следующее:
Remove-Item "foldertodelete\*" -Force -Recurse
Ответ 5
2018 Обновление
В текущей версии PowerShell (протестировано с v5.1 в Windows 10 1809) можно использовать более простой синтаксис Unix rm -R.\DirName
для rm -R.\DirName
удаления каталога .\DirName
со всеми подкаталогами и файлами, которые он может содержать. На самом деле многие общие команды Unix работают в PowerShell так же, как и в командной строке Linux.
Ответ 6
rm -Force -Recurse -Confirm:$false $directory2Delete
не работал в PowerShell ISE, но работал через обычный CLI PowerShell.
Надеюсь, это поможет. Это заставляло меня bannanas.
Ответ 7
Ниже приведена копировальная реализация ответа Майкла Фрейдзима
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
}
}
Ответ 8
$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
}
Ответ 9
$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
}
Ответ 10
Так как мой каталог находился в C:\users, я должен был запустить мой powershell от имени администратора,
del ./[your Folder name] -Force -Recurse
эта команда работала для меня.
Ответ 11
Если ваша папка является объектом, допустим, что вы создали ее в том же сценарии с помощью следующей команды:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Затем вы можете просто удалить его в том же сценарии
$folder.Delete($true)
$ true - состояния для рекурсивного удаления