例如,有一个名为%pathtofolder%的变量,因为它清楚地表明它是文件夹的完整路径。
我想删除这个目录中的每一个文件和子文件夹,但不是目录本身。
但是,可能会出现类似“此文件/文件夹已被使用”的错误…当这种情况发生时,它应该继续并跳过该文件/文件夹。
这有什么命令吗?
例如,有一个名为%pathtofolder%的变量,因为它清楚地表明它是文件夹的完整路径。
我想删除这个目录中的每一个文件和子文件夹,但不是目录本身。
但是,可能会出现类似“此文件/文件夹已被使用”的错误…当这种情况发生时,它应该继续并跳过该文件/文件夹。
这有什么命令吗?
当前回答
我能想到的最简单的解决方案是删除整个目录
RD /S /Q folderPath
然后重新创建这个目录:
MD folderPath
其他回答
我尝试了其中几种方法,但没有一种能正常工作。
我在Windows命令行网站上找到了这个两步方法:
forfiles /P %pathtofolder% /M * /C "cmd /c if @isdir==FALSE del @file"
forfiles /P %pathtofolder% /M * /C "cmd /c if @isdir==TRUE rmdir /S /Q @file"
它完全按照我需要的和OP指定的那样工作。
Rmdir是我最喜欢的命令。它用于删除大文件和带有子文件夹的文件夹。不会创建备份,因此在运行此命令之前,请确保已安全地复制了文件。
RMDIR "FOLDERNAME" /S /Q
这将无声地删除文件夹以及所有文件和子文件夹。
你可以使用这个shell脚本清理C:\Temp源代码中的文件夹和文件:
del /q "C:\Temp\*"
FOR /D %%p IN ("C:\Temp\*.*") DO rmdir "%%p" /s /q
创建包含上述命令的批处理文件(例如delete.bat)。进入delete.bat文件所在位置,执行delete.bat命令
Use:
del %pathtofolder%\*.* /s /f /q
这将删除%pathtofolder%中的所有文件和子文件夹,包括只读文件,并且不提示确认。
CD [Your_Folder]
RMDIR /S /Q .
您将得到一条错误消息,告诉您RMDIR命令不能访问当前文件夹,因此不能删除它。
更新:
从这个有用的注释(感谢Moritz Both),你可以添加&&之间,所以RMDIR将不会运行如果CD命令失败(例如键入错误的目录名):
CD [Your_Folder] && RMDIR /S /Q .
来自Windows命令行参考:
/S:删除目录树(指定目录及其所有目录 子目录,包括所有文件)。 /Q:静音模式。何时不提示确认 删除目录树。(注意,只有当/s为时/q才有效 指定)。