删除文件夹及其子文件夹中的所有文件

删除文件夹及其子文件夹中的所有文件

我想从文件夹结构中删除所有文件,这样就剩下一个空的文件夹结构。

可以批量实现吗?VB脚本脚本?

我尝试过一个非常基本的批处理命令,但这需要用户允许删除每个文件。这不是一个合适的解决方案,因为有数百个文件,而且随着时间的推移,文件数量会大幅增加。

你有什么建议?

答案1

这可以使用电源外壳

Get-ChildItem -Path C:\Temp -Include *.* -File -Recurse | foreach { $_.Delete()}

此命令获取 中的每个子项$path,对每个子项执行删除方法,并且速度非常快。文件夹结构保持不变。

如果你有文件没有扩展名,请使用

Get-ChildItem -Path C:\Temp -Include * -File -Recurse | foreach { $_.Delete()}

反而。

看来该-File参数可能是在 PowerShell v2 之后添加的。如果是这样的话,那么

Get-ChildItem -Path C:\Temp -Include *.* -Recurse | foreach { $_.Delete()}

它应该可以解决具有扩展名的文件的问题。

如果不起作用,检查您是否拥有最新版本的 Powershell

答案2

简短而实用的 PowerShell。不确定它能与哪个版本的 PS 兼容。

Remove-Item c:\Tmp\* -Recurse -Force

答案3

您可以使用命令执行此del操作:

dir C:\folder
del /S *

/S开关仅以递归方式删除文件。

答案4

通过阅读您原始问题的字里行间,我可以提供一条可供您使用的备选批处理代码行。此代码运行时只会删除超过 60 天的文件。这样,您可以将其放入计划任务中,运行时它会删除您不需要的多余文件,而不是删除整个目录。如果您愿意,可以将 60 天更改为 5 天甚至 1 天。这不会删除文件夹。

forfiles -p "c:\path\to\files" -d -60 -c "cmd /c del /f /q @path"

相关内容