Windows批处理命令来删除文件夹

3
我有一个文件夹,里面包含文件和文件夹,例如:
 C:/MyFolder
 C:/MyFolder/File1.txt
 C:/MyFolder/File2.txt
 C:/MyFolder/File3.sql
 C:/MyFolder/Folder1
 C:/MyFolder/Folder1/File5.txt

我需要使用哪个批处理命令来删除所有文件夹及其内部内容,但不删除我的文件夹中的文件。例如:删除Folder1、Folder1/File5.txt,但保留File1.txt、File2.txt和File3.sql?


使用 del(或 erase)删除文件,使用 rmdir(或 rd)删除空目录;在命令提示符窗口中输入命令,后跟 /? 以获取帮助... - aschipfl
3个回答

4
这里展示了命令 - 如果您对它们满意,请删除echo关键字并再次运行。
@echo off
for /d %%a in ("C:\MyFolder\*") do echo rd "%%a" /q /s
pause

谢谢您的指令,但是当我尝试像这样做 "for /d %%a in (".") do rd "%%a" /q /s"(因为我需要从当前目录删除),它删除了所有东西,不仅是文件夹和其中的内容,甚至当前目录中的文件也被删除了。 - springenthusiast
@springbatcher,这不是我包含的命令。请测试我使用的脚本,然后告诉我是否失败。 - foxidrive
这个命令很管用 - for /d %%a in ("*") do rd "%%a" /q /s。谢谢。 - springenthusiast

2

从命令提示符:

for /f "tokens=* delims=" %a in ('dir /b /a:d "C:\someDir"') do @rd /s /q "%~fa"

从批处理文件:

for /f "tokens=* delims=" %%a in ('dir /b /a:d "C:\someDir"') do @rd /s /q "%%~fa"

1
它需要一些路径,否则在任何地方运行可能会造成混乱。 - foxidrive

1

适用于DOS/命令提示符

for /d %F in ("path*") do rmdir /s /q "%F"

如果您在批处理文件中使用它,请使用双%%。

for /d %%F in ("H:\EDGE-backup*") do rmdir /s /q "%%F"

我用这个备份了EDGE书签等内容,由于XCOPY总是带有它的根目录子文件夹,所以我必须在复制后删除这些文件夹。

以上方法对此起作用。结果,只有文件留在H:\EDGE-backup中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接