如何从文件夹中删除文件和子目录但不删除该文件夹本身?

如何从文件夹中删除文件和子目录但不删除该文件夹本身?

我可以使用哪些命令(从命令提示符)从文件夹中删除所有文件和所有子目录,但不删除文件夹本身?基本上,删除结束时应该有一个空文件夹。

答案1

cd <foldername>
del *.*

将删除文件。你需要执行

rmdir /s <subfolder>

对于每个子文件夹。

更新

在批处理文件中尝试此操作:

@echo off
cd "%1"
del *.* /y
for /d %%i in (*) do rmdir /s /q "%%i" 

将其命名为 EmptyDir.bat。然后你可以输入:

emptydir <dirname>

它将删除该文件夹中的文件和文件夹,但将文件夹保留在那里。

答案2

$> wipe.bat myExampleFolder

rmdir /s $1
mkdir $1    

通过此解决方案,您可以指定相对于当前文件夹甚至绝对路径。

一定要意识到危险。例如,如果您选择删除的文件夹不存在。(这就是为什么例如cd <targetdir>| del *.*可能非常危险的原因……如果您寻找其他解决方案,current-directory-restore 可能是您的朋友:

@set OLDDIR=%CD%
cd $1
echo do stuff...
@cd /d %OLDDIR%

相关内容