例如,有一个名为%pathtofolder%的变量,因为它清楚地表明它是文件夹的完整路径。

我想删除这个目录中的每一个文件和子文件夹,但不是目录本身。

但是,可能会出现类似“此文件/文件夹已被使用”的错误…当这种情况发生时,它应该继续并跳过该文件/文件夹。

这有什么命令吗?


当前回答

我有以下对我有效的解决方案:

/R /D %A in (*node_modules*) do rmdir "%A" /S /Q

它从当前目录及其子文件夹中删除所有节点模块文件夹。

这与上面发布的解决方案类似,但我仍然在这里发布这个,以防有人发现它有用

其他回答

@ECHO OFF
rem next line removes all files in temp folder
DEL /A /F /Q /S "%temp%\*.*"
rem next line cleans up the folder's content
FOR /D %%p IN ("%temp%\*.*") DO RD "%%p" /S /Q

我使用Powershell

Remove-Item c:\scripts\* -recurse

它将删除文件夹的内容,而不是文件夹本身。

我尝试了其中几种方法,但没有一种能正常工作。

我在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 [/S] [/Q] [drive:]path            

使用记事本创建一个文本文档并复制/粘贴:

rmdir /s/q "%temp%"
mkdir "%temp%"

选择“另存为”和文件名称:

delete_temp.bat

另存为类型:所有文件并单击保存按钮。

它适用于任何类型的帐户(管理员或标准用户)。运行它!

在这个例子中我使用了一个临时变量,但是你也可以使用其他变量!PS:仅适用于Windows操作系统!