我有目录结构/ foo / bar / fooBar / ..我想编写一个Windows命令,我可以提到foo目录之前的路径,它会在/ foo中递归删除所有文件和目录,但它不应该删除foo目录。
我一直在使用rmdir /q /s [path to foo]
,但此命令也会删除foo目录。如果有任何命令可以告诉我。
答案 0 :(得分:47)
rd /s /q /path/to/foo
md /path/to/foo
答案 1 :(得分:9)
del /f /s /q DirectoryWhichContainsFilesToDelete/\*
这将删除文件夹DirectoryWhichContainsFilesToDelete
中的所有文件而不删除文件夹本身。
玩得开心:))
答案 2 :(得分:6)
我也一直在摸这个。创建一个使用rmdir的for循环很容易,但它留下了长名称中有空格的文件夹。可以操作目录列表并获取8.3文件名,但这是一个更简单的解决方案。
然后创建一个空文件夹;
robocopy \empty_folder \folder_with_sub_folders /PURGE
所有子文件夹&文件将被删除。
答案 3 :(得分:5)
del X /f /s /q
rd X /s /q
这会删除ROOt目录。再次使用
md X
或先复制一份。
否则你将不得不做批量funkiness
dir X /ad /b
将为您提供X的直接子目录列表。您可以解决其余的
答案 4 :(得分:3)
我正在寻找一个简单的命令,以递归方式删除目录中的所有文件,但保持目录结构不变。所以,也许这可能很有趣;)
for /f "delims=" %i in ('dir /B /S /A:-DH') do @del /F /Q /A:H "%i"
命令'dir / B / S / A:-D'在没有'dir'摘要报告(/ B)的情况下递归地(/ S)列出当前目录中的文件(/ A:-D)。 'for'循环遍历每个完整行(/ delims =)并执行delete命令,强制和安静。我另外使用隐藏标志(/ H)来列出和删除一些神秘的(例如thumbs.db)文件。
答案 5 :(得分:2)
deltree / foo / *应该可以正常工作。
答案 6 :(得分:2)
尝试使用Powershell:
powershell -Command "Remove-Item '\foo\*' -Recurse -Force"
答案 7 :(得分:1)
我以前在批处理文件中使用过它。它使用for循环来导航目录结构。
这里我从树中删除cvs子目录,从一个分支复制到另一个分支时需要。
@echo off
if /I exist CVS. rd CVS /s /q >nul
for /F %%z in ('dir cvs /ad /s /b') do echo %%z && rd /s /q %%z
echo Batchfile %0 is complete
答案 8 :(得分:0)
为了防止删除foo目录,请在删除之前将目录更改为foo,例如:
cd c:\ foo rd / s / q c:\ foo
这将删除foo下的所有文件和文件夹但不删除foo。将显示一条错误消息,如下所示“该进程无法访问该文件,因为该文件正由另一个进程使用。”