2 scsolar ScSolAr 于 2016.03.07 02:49 提问

求一个批处理删除文件 200C

遍历当前目录下的所有子文件夹,如果子文件夹中不包含特定后缀名的文件则删除该文件夹.

7个回答

caozhy
caozhy   Ds   Rxr 2016.03.07 05:23
 for /f "delims=" %%i   in ('dir  /b/a-d/s  %DestPath%\')  do (
if  not exist %%i\*.后缀 rd %%i
)
ScSolAr
ScSolAr 用了一下感觉不能用啊
接近 2 年之前 回复
qq_33421519
qq_33421519   2016.03.07 09:56

选中第一个要删除的文件并按住ctrl键选中最后一个要删除的文件,单击enter键,就删除了。

WinsenJiansbomber
WinsenJiansbomber   2016.03.07 10:26

怎么会有这种需求的呢,用JS不行吗,用FSO不行吗!

u013829202
u013829202   Rxr 2016.03.07 16:13

这种,百度一堆一堆的。

u010887744
u010887744   2016.03.11 16:41

你好,dos批处理是没有 保留特定文件而删除其他文件的功能的,当然我们可以用其他方法实现,比如:

del /f /s /q G:\test\*.txt
del /f /s /q G:\test\*.ini

可以删除G:\test目录(包括子目录)下的所有txt或者ini后缀的文件。
我就是这么干的,希望能够帮到你。如果解决了你的问题,请采纳;如果有疑问,欢迎再次提问。

u011606457
u011606457   2016.06.02 16:03

经常看到问题描述不清或者不完整的问题,至少说一下你需要什么语言实现的代码,或者你需要一个软件?

u014658179
u014658179   2016.03.07 04:55

public static void main(String[] args) {
File file = new File("");
isfile(file,".txt");
}

public static boolean isfile(File filename,String filetype) {
    boolean flag = false;
    File[] files = filename.listFiles();
    for (int i = 0; i < files.length; i++) {
        if (files[i].isDirectory()  && files[i].listFiles().length>0) {
            // 表明是目录,进入该目录,去判断每一个文件
            if (!isfile(filename,filetype)) {
                filename.delete();
            }
        } else {
            if (files[i].getName().endsWith(filetype)) {
                flag = true;
                break;
            }
        }
    }
    return flag;
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!