如何在PowerShell中静默删除包含内容的目录

hsz*_*hsz 213 directory powershell

使用PowerShell,是否可以删除包含文件的某个目录而不提示确认操作?

Mic*_*ice 317

Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
Run Code Online (Sandbox Code Playgroud)

  • 我发现在包含子目录的目录上运行时我需要运行两次.第一次,会出现很多"目录不空"的错误.第二次,它完成没有错误. (15认同)
  • @Kiquenet-这对我有用,如果我在路径中添加一个斜杠,那么这个例子就变成了 Remove-Item .\folderodelete\* -Force -Recurse (3认同)
  • 如果你想要它忽略一个丢失的文件夹你可以添加`-ErrorAction Ignore`,虽然这也会隐藏其他错误. (3认同)
  • @Kiquenet 然后您可以使用通配符删除该文件夹中的所有内容:`Remove-Item './folder/*'`。如果您真的只想清除所有文件夹的文件,您可以列出所有叶子并将其通过管道传输到 Remove-Item cmdlet `Get-ChildItem -Recurse -File | 删除项目` (3认同)
  • 如果我只想删除文件夹的内容而不删除文件夹? (2认同)
  • 使命令更短 ``rm /path -r -force``` (2认同)

MiF*_*vil 58

PowerShell中删除force answer:help Remove-Item说:

此cmdlet中的Recurse参数无法正常工作

解决方法的命令是

Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
Run Code Online (Sandbox Code Playgroud)

然后删除文件夹本身

Remove-Item $Destination -Force 
Run Code Online (Sandbox Code Playgroud)

  • @ beppe9000:我相信,是的。在最近的脚本中,我使用的是`Remove-Item -Recurse -Force $ dir`,它可以工作。 (3认同)
  • Get-ChildItem还应该具有-Force参数,以便它还返回隐藏的文件/文件夹. (2认同)

nec*_*ede 37

这对我有用:

Remove-Item $folderPath -Force  -Recurse -ErrorAction SilentlyContinue
Run Code Online (Sandbox Code Playgroud)

因此,文件夹将被删除,其中包含所有文件,如果文件夹路径不存在则不会产生错误.

  • 这不会删除该文件夹。 (3认同)
  • @variable,当我尝试时它删除了该文件夹。 (2认同)

小智 10

要删除没有文件夹的内容,您可以使用以下内容:

Remove-Item "foldertodelete\*" -Force -Recurse
Run Code Online (Sandbox Code Playgroud)


div*_*nex 10

2018更新

在当前版本的PowerShell(在Windows 10 1809上使用v5.1进行测试)中,可以使用更简单的Unix语法rm -R .\DirName来静默删除目录.\DirName及其可能包含的所有子目录和文件。实际上,许多常见的Unix命令在PowerShell中的工作方式与Linux命令行中的工作方式相同。

  • 您也可以使用 `rm -R .\DirName\*` 来清理文件夹而不删除文件夹本身 (4认同)
  • 在 2016 年服务器核心计算机上,所有 powershell 命令和这个命令都不适合我。他们都说,“无法删除,因为它不为空”。我也尝试过windows下的rd命令。我可以将文件夹移动到任何地方,只是无法删除。 (3认同)

var*_*ble 9

这对我有用:

Remove-Item C:\folder_name -Force -Recurse
Run Code Online (Sandbox Code Playgroud)


Sal*_*man 8

简而言之,我们可以使用rm -r -fo {folderName}递归删除文件夹(删除里面的所有文件和文件夹)并强制

  • 我仍然想知道为什么 powershell 不只是继承 linux 的整个命令,比如 rm -rf 文件夹/ (5认同)

Imt*_*que 6

Powershell 适用于相关文件夹。它Remove-Item有几个与 unix 一致的有用别名。一些例子:

rm -R -Force ./directory
del -R -Force ./directory/*
Run Code Online (Sandbox Code Playgroud)


小智 5

rm -Force -Recurse -Confirm:$false $directory2DeletePowerShell ISE中不起作用,但通过常规PowerShell CLI起作用。

我希望这有帮助。它把我赶快运了。