例如,有一个名为%pathtofolder%的变量,因为它清楚地表明它是文件夹的完整路径。
我想删除这个目录中的每一个文件和子文件夹,但不是目录本身。
但是,可能会出现类似“此文件/文件夹已被使用”的错误…当这种情况发生时,它应该继续并跳过该文件/文件夹。
这有什么命令吗?
例如,有一个名为%pathtofolder%的变量,因为它清楚地表明它是文件夹的完整路径。
我想删除这个目录中的每一个文件和子文件夹,但不是目录本身。
但是,可能会出现类似“此文件/文件夹已被使用”的错误…当这种情况发生时,它应该继续并跳过该文件/文件夹。
这有什么命令吗?
当前回答
我使用Powershell
Remove-Item c:\scripts\* -recurse
它将删除文件夹的内容,而不是文件夹本身。
其他回答
您可以使用以下命令删除所有内容和父文件夹本身:
RMDIR [/S] [/Q] [drive:]path
我有以下对我有效的解决方案:
/R /D %A in (*node_modules*) do rmdir "%A" /S /Q
它从当前目录及其子文件夹中删除所有节点模块文件夹。
这与上面发布的解决方案类似,但我仍然在这里发布这个,以防有人发现它有用
CD [Your_Folder]
RMDIR /S /Q .
您将得到一条错误消息,告诉您RMDIR命令不能访问当前文件夹,因此不能删除它。
更新:
从这个有用的注释(感谢Moritz Both),你可以添加&&之间,所以RMDIR将不会运行如果CD命令失败(例如键入错误的目录名):
CD [Your_Folder] && RMDIR /S /Q .
来自Windows命令行参考:
/S:删除目录树(指定目录及其所有目录 子目录,包括所有文件)。 /Q:静音模式。何时不提示确认 删除目录树。(注意,只有当/s为时/q才有效 指定)。
RD代表删除目录。
/S:删除所有文件和子文件夹 除了文件夹本身之外。 使用此选项可删除整个文件夹树。
/Q:静音-不显示YN确认
例子:
RD /S /Q C:/folder_path/here
使用记事本创建一个文本文档并复制/粘贴:
rmdir /s/q "%temp%"
mkdir "%temp%"
选择“另存为”和文件名称:
delete_temp.bat
另存为类型:所有文件并单击保存按钮。
它适用于任何类型的帐户(管理员或标准用户)。运行它!
在这个例子中我使用了一个临时变量,但是你也可以使用其他变量!PS:仅适用于Windows操作系统!