我有以下目录:
c:\Project\Current\stage1\somefiles and some folders c:\Project\Current\stage2\somefiles and some folders c:\Project\Current\stage3\somefiles and some folders c:\Project\Current\stage4\somefiles and some folders c:\Project\Current\stage5\somefiles and some folders . . . c:\Project\Current\stage500\somefiles and some folders
我想创建一个批处理文件,以便stage1
,stage2
,...,stage500
中的所有内容都会被删除但不会删除任何其他文件夹,以便我仍然可以看到上面的目录但是空的。
有人可以帮忙吗?
答案 0 :(得分:1)
试试这个:
@echo off
CD c:\Project\Current /d
for /f "tokens=*" %%f in ('dir /a-d /s /b') do (
del "%%f" /q /f
)
有三个重要部分:
for /f "tokens=*" %%f
表示我们正在迭代以下命令生成的所有行,并为每次迭代临时保存变量%%f
中的每一行。
dir /a-d /s /b
是代码的核心。这将列出c:\Project\Current\
内的所有文件,包括所有子文件夹。 /a-d
表示目录将被忽略,因为我们不希望它们被删除。 /s
表示我们正在搜索任何子文件夹。 /b
将输出格式设置为简单模式,以便输出的每一行只包含文件的完整路径。
del "%%f" /q /f
只是删除%%f
中存储的文件。 /q
表示不会问我是否确定,只需将其删除即可。\ n"而/f
表示任何文件 - 即使它被标记为系统文件或不可见或受保护 - 都将被删除。不要错过%%f
周围的引号,否则包含空格的路径会造成麻烦。
答案 1 :(得分:1)
我找到答案并且很简单
for /d %%X in (c:\Project\Current*) Do (
for /D %%I in ("%%X\*") do rmdir /s/q "%%I"
del /F /q "%%X\*")
感谢大家的帮助..