求一个批处理命令(删除目录下面全部文件和文件夹,指定的文件除外)

删除目录下面全部文件和文件夹,指定的文件除外。例如:删除D:abc\目录下除130.txt和132.doc外的全部文件和目录的批处理!本人写的代码如下:cd/dD:\ab... 删除目录下面全部文件和文件夹,指定的文件除外。

例如:删除D:abc\ 目录下除130.txt和132.doc外的全部文件和目录的批处理!

本人写的代码如下:
cd /d D:\abc\def
for /f "usebackq delims=" %%i in (`dir /a /b`) do (attrib "%%i" -r -h -s)
del D:\abc\def\*.* /f /q
rem
for /R %%I in (130.txt,132.doc) do attrib "%%~nI" +r +s +h
for /R %%i in (*.*) do (rmdir "%%i" /s /q)
for /f "usebackq delims=" %%i in (`dir /a /b`) do (attrib "%%i" -r -h -s)
这个是保留130和132目录,而不是名字,帽子for参数本身的限制,求高手帮忙写一个新的批处理或者修改一下,本人从12点一直弄到现在,真的搞不定了,求高手帮忙,确实没有财富值了,见谅。
展开
 我来答
ijyfe
2014-04-27 · TA获得超过3000个赞
知道小有建树答主
回答量:1243
采纳率:25%
帮助的人:478万
展开全部
@echo off
for /r "d:\abc\def" %%a in (*) do (
   if "%%~nxa" neq "130.txt" (
      if "%%~nxa" neq "132.doc" (
         del /a /f "%%a"
      )
   )
)
for /f "usebackq delims=" %%b in ('dir /ad /b /s "d:\abc\def"^|sort /r') do (
   rd "%%b"
)
pause

上面批处理的思路是:

先删除除了130.txt和132.doc外所有的文件,然后在删除所有的空目录。

有疑问,请追问。如果对你有帮助,请采纳!谢谢!

追问
执行了,没任何效果,也没删除任何文件。
追答
@echo off
for /r "d:\abc\def" %%a in (*) do (
   if "%%~nxa" neq "130.txt" (
      if "%%~nxa" neq "132.doc" (
         del /a /f "%%a"
      )
   )
)
for /f "delims=" %%b in ('dir /ad /b /s "d:\abc\def"^|sort /r') do (
   rd "%%b"
)
pause

系统下测试成功。

有疑问,请追问

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式