2013-01-23 189 views
1

通过Windows批处理,该命令将删除所有子目录和文件夹的子文件而不删除/删除该父文件夹/根文件夹会怎样?删除所有子目录和子文件而不删除父/根目录?

这是我迄今为止尝试:

ECHO "Good riddance, cache! Muahahahahahaha" 
cd "C:\Users\abrewer\Desktop\cache" 
del * /q 

以上仅删除文件,而不是子文件夹。我也试过RMDIR和RD,这两个命令似乎删除父/根目录。

+1

是否仅限于windows批处理文件,或者可以使用TakeCommand或类似的方法,使用更高级的脚本语言吗? – Mordachai

+0

我仅限于Windows批处理文件...这是为了让Windows Server每晚通过预定任务清除文件夹。 –

回答

5

做的最简单的方法:

cd "C:\Users\abrewer\Desktop\cache" 
rd /s /q . 

它时,它会尝试和失败删除的父目录,但除此之外,它完美输出错误信息。

另外,像:

cd "C:\Users\abrewer\Desktop\cache" 
del * /q 
for /D %%i in (*) do rd /s /q "%%i" 

可能会奏效。如果从命令行运行而不是在批处理文件中运行,请记住只使用单个百分号。

+0

+1,非常酷的第一个选项。我永远不会想这样做。错误消息可以通过'2> nul'重定向来隐藏。 – dbenham

+0

不错!我使用它来清除机器上的下载文件夹,而无需使用蓝色箭头图标去除特殊的下载文件夹 – PsychoData

3
@echo off 
ECHO "Good riddance, cache! Muahahahahahaha" 
pushd "C:\Users\abrewer\Desktop\cache" 
del * /q 
for /d %%F in (*) do rd /s /q "%%F" 
popd 
相关问题