Board logo

标题: [文件操作] [已解决]批处理怎样删除某文件夹下的隐藏文件(有特殊要求)? [打印本页]

作者: comicguests    时间: 2011-6-25 15:52     标题: [已解决]批处理怎样删除某文件夹下的隐藏文件(有特殊要求)?

如题,我想删除批处理所在文件夹下的
特定隐藏文件

    类似这样:
                                             批处理所在文件夹       >      根文件夹

                                              *abcd*       >       含关键词abcd的文件夹(第一层子文件夹)

                                                *.txt         >       删除后缀为txt的     隐藏     文件  (第一层子文件夹下的文件)


或者,
            
for /f "delims=" %%i in ('dir /ad /b /s^|sort /r') do rd /q "%%i" 2>nul
这个命令可以删除空文件夹
但文件夹内有隐藏文件夹他就不能删除了(废话)
怎样修改命令
让他可以无视隐藏文件
删除文件夹呢?


两种方法都告诉我
    就太感谢了!!!!!!!
作者: Batcher    时间: 2011-6-25 16:10

给rd加个/s试试
作者: comicguests    时间: 2011-6-25 16:31

2# Batcher


所有文件夹都没了.......
作者: Batcher    时间: 2011-6-25 16:52

3# comicguests


可以考虑先把隐藏文件删掉
再用你原来的rd命令
作者: Hello123World    时间: 2011-6-27 13:16

for /f "delims=" %%i in ('dir /ad /b /s^|sort /r') do rd /q "%%i" 2>nul
这个命令可以删除空文件夹
::/q是多余的。
但文件夹内有隐藏文件夹他就不能删除了(废话)
::这点并不正确,rd可以删除隐藏的空文件夹,当然不能直接删除非空的隐藏文件夹(废话)
  1. C:\Users\helloworld\Desktop>md hello
  2. C:\Users\helloworld\Desktop>attrib +h hello
  3. C:\Users\helloworld\Desktop>rd hello
  4. C:\Users\helloworld\Desktop>attrib -h hello
  5. 找不到文件 - hello
复制代码

作者: CrLf    时间: 2011-6-27 16:11

不同方法有不同的适用范围,不能指望一招鲜吃遍天
下面这个是按楼主说的改的,效率不高:
  1. (for /f "delims=" %%i in ('dir /ad /b /s^|sort /r') do (
  2. dir /b "%%i"&&rd /q "%%i"||rd /q /s "%%i"
  3. ))2>nul
复制代码
用xcopy可能更快:
  1. for /d %%a in (*) do (
  2.    xcopy /e /c /r "%%a" $\
  3.    rd "%%a"
  4.    ren $ %%~nxa
  5. )
复制代码

作者: Hello123World    时间: 2011-6-27 18:20

6# zm900612
rd /q "%%i"||rd /q /s "%%i"

::莫非rd /q真还有什么我不知道的特殊功能?为什么你也这么用,rd 没/s ,/q有什么用?
作者: CrLf    时间: 2011-6-27 19:01

没有,确实是多余的,复制下来忘了去掉…




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2