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

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

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

这有什么命令吗?


当前回答

这将删除文件夹和文件,并留下文件夹。

pushd "%pathtofolder%" && (rd /s /q "%pathtofolder%" 2>nul & popd)

其他回答

我能想到的最简单的解决方案是删除整个目录

RD /S /Q folderPath

然后重新创建这个目录:

MD folderPath

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

/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才有效 指定)。

删除文件:

del PATH_TO_FILE

删除包含所有文件的文件夹。

rmdir /s /q PATH_TO_FOLDER

删除特定文件夹中的所有文件(不删除文件夹本身)有点复杂。Del /s *。*不能删除文件夹,但可以从所有子文件夹中删除文件。因此需要两个命令:

del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"

RD代表删除目录。

/S:删除所有文件和子文件夹 除了文件夹本身之外。 使用此选项可删除整个文件夹树。

/Q:静音-不显示YN确认

例子:

RD /S /Q C:/folder_path/here