使用PowerShell,是否可以删除包含文件的目录而不提示确认操作?
当前回答
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
或者,用更短的版本
rm /path -r -force
其他回答
从PowerShell删除强制答案: help Remove-Item说:
这个cmdlet中的递归参数不能正常工作
要解决的命令是
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
然后删除文件夹本身
Remove-Item $Destination -Force
下面是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
}
}
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
或者,用更短的版本
rm /path -r -force
简而言之,我们可以使用rm -r -fo {folderName}递归地删除文件夹(删除里面的所有文件和文件夹)并强制
如果你有你的文件夹作为一个对象,让我们说你在相同的脚本中使用下一个命令创建它:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
然后你可以像这样在相同的脚本中删除它
$folder.Delete($true)
$true -递归删除的状态