精华内容
下载资源
问答
  • 批量删除指定文件

    2015-12-21 13:28:05
    find . -name "*~" -type f -print -exec rm -rf {} \;   

    find . -name "*~" -type f -print -exec rm -rf {} \; 

     

    展开全文
  • 主要介绍了VC实现批量删除指定文件的方法,是一个比较普遍且实用的功能,需要的朋友可以参考下
  • vc开发的批量删除指定文件服务,可以在配置文件里指定文件类型,线程执行的间隔等参数,灵活配置
  • 本程序能自动批量删除指定的格式文件,方便特殊的文件操作,vc6.0编译通过
  • 批量删除指定文件或目录,支持通配符,适用于CVS、SVN等产生的垃圾文件,程序需要.NET FrameWork 2.0 支持
  • 摘要:VC/C++源码,随书源码,批量删除,删除文件 运行环境:Windows/Visual C/C++
  • shell 批量删除指定文件 脚本

    千次阅读 2017-02-25 21:02:52
    当遇到的文件过多,想要删除部分文件时 #!bin/bash #文件名放到dat文件中 注意TAB分割 for line in $(cat filename.dat) do   echo "Start Del ${line}.*"  rm -rf ${line}.*   echo "Delete OK" done


    当遇到的文件过多,想要删除部分文件时

    #!bin/bash
    #文件名放到dat文件中 注意TAB分割
    forlinein$(cat filename.dat)
    do
       echo"Start Del ${line}.*"
        rm -rf  ${line}.*
       echo"Delete OK"
    done

    展开全文
  • BAT批处理(二):批量删除指定文件以及相关简单的语法结构(系统变量errorlevel,变量延迟等) 前两天在使用 VSCode 的时候,看到之前那么多 cpp 编译产生的 exe 可执行文件,于是心生一个念头,我要把它们全部删掉...

    BAT批处理(二):批量删除指定文件以及相关简单的语法结构(系统变量errorlevel,变量延迟等)

    前两天在使用 VSCode 的时候,看到之前那么多 cpp 编译产生的 exe 可执行文件,于是心生一个念头,我要把它们全部删掉,但是又不想一个个地删,便想到了利用 bat 脚本批量删除 exe 文件。于是在搜集了大量资料后,开始了编写。
    首先就是一条简单的 del

    del F:\Code\C++\*.exe
    

    但是发现只能删除掉 C++ 那个文件夹根目录下的 exe 文件,然后发现,在后面加上 /s,表示在当前目录递归删除指定文件,就是还要进入子目录寻找文件。

    /a 根据百属性选择要删除的文件
    /f 强制删除只读度文件
    /s 从所有子目录删除指定文件
    /q 安静模式。删除全局通配符时,不要求确知

    del F:\Code\C++\*.exe /s
    

    运行之后,哗啦啦,全删掉了(在其他盘里测试一下):
    在这里插入图片描述
    本来其实这样就可以了,把这个批处理脚本放到 C++ 文件夹根目录就行了,但是如果多次执行的时候,本来已经没有 exe 文件了,还要执行,就会提示 找不到 G:\test\*.exe,对于强迫症的我当然不能忍受起码提示一个 exe文件已经删完啦 之类的。要这样写势必要进行条件判断,然后,又去找了很多资料。
    一开始搜到一个 errorlevel 的系统变量,会判断你当前这条语句是否执行,如果成功执行该变量的值为 0, 否则是 1-255 之间的某一个值,这里的值主要是根据语句未能成功执行的原因(其实就是跟中断类型差不多)来决定的,一般是 1

    @echo off 
    if ERRORLEVEL 1 goto fail
    if ERRORLEVEL 0 goto success
    goto done
    :fail
    echo exe文件已经没有啦,别删啦~
    goto done
    :success
    echo 正在删除所有烦人的exe文件...
    del F:\Code\C++\*.exe /s
    :done
    echo 执行完成
    

    运行后发现了中文乱码,于是改一下编码为 ANSI在这里插入图片描述
    然后再次执行,发现不管 exe 文件是否被删掉,都会执行 success 标号的语句,说明 del 语句都被执行了,只是找不到文件而已。
    在这里插入图片描述
    这种方法不行那就试试其他方法,用 if exist 条件判断应该可以吧

    @echo off 
    ::if ERRORLEVEL 1 goto fail
    ::if ERRORLEVEL 0 goto success
    if exist F:\Code\C++\*.exe (goto success) else (goto fail)
    goto done
    :fail
    echo exe文件已经没有啦,别删啦~
    goto done
    :success
    echo 正在删除所有烦人的exe文件...
    del F:\Code\C++\*.exe /s
    :done
    echo 执行完成
    

    这里的 ::是注释,当然注释还有其他写法

    1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
    2、rem 注释内容(不能出现重定向符号和管道符号)
    3、echo 注释内容(不能出现重定向符号和管道符号)〉nul
    4、if not exist nul 注释内容(不能出现重定向符号和管道符号)
    5、:注释内容(注释文本不能与已有标签重名)
    6、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
    7、goto 标签 注释内容(可以用作说明goto的条件和执行内容)
    8、:标签 注释内容(可以用作标签下方段的执行内容

    完美执行。
    然后在之后的其他测试中,若 C++ 根目录下没有 exe 文件,而在其子文件夹下有 exe 文件的话,就出问题了,因为 if exist 那行语句只是判断当前文件夹根目录下是否存在 exe 文件。那该怎么办呢?
    应该要对 C++ 根目录进行递归查找,便是 for 语句:

    @echo off
    cls
    set PATH=F:\Code\C++\
    set FILE=*.exe	
    set cnt=0
    for /R %PATH% %%s in (%FILE%) do (
    	::echo %%s
    	set /a cnt=%cnt%+1
    )
    echo 删除了%cnt%个文件!
    if %cnt% EQU 0 (goto fail) else (goto success)
    goto done
    :fail
    echo exe文件已经没有啦,别删啦~
    goto done
    :success
    echo 正在删除所有烦人的exe文件...
    del *.exe /s
    echo 删除了%cnt%个文件!
    goto done
    :done
    echo 执行完成
    

    for 循环后面的 /R 便是对当前文件夹进行递归查找,若存在后缀名为 .exe 文件,便把计数值+1.然后运行,又出错了。。。
    cnt的值始终为1,这又是为什么呢?
    又查了许多资料,发现 批处理语法中还有叫什么 变量延迟 的语法,具体就是 当我们准备执行一条命令的时候,命令解释器会先将命令读取,如果命令中有环境变量,那么就会将变量的值先读取来出,然后在运行这条命令,如:echo %cnt%,当我们执行这条命令的时候,命令解释器会先读出 %cnt% 的值,然后执行echo,得到的结果是屏幕上显示出 cnt的值。但是,有的时候,我们在执行一条命令的时候,命令解释器将环境变量的值读出来以后,我们的环境变量的值发生了改变,这时个再执行命令就是使用的变量改变前的值,这就不是我们想要的结果了。
    也就是,当 for 语句执行时,命令解释器首先把它变成

    for /R %s in (*.exe) do (set /a cnt=0+1 )
    

    因此在这个循环里面 cnt 就全是0了,这里我们就需要用到 变量延迟 了,设置 setlocal enabledelayedexpansion,然后将需要使用变量延迟的变量两边用 ! 表示,即 set /a cnt=!cnt!+1.
    关闭变量延迟的话就是 setlocal disabledelayedexpansion.
    全部修改完了 bat 程序如下:

    @echo off
    cls
    setlocal enabledelayedexpansion
    set PATH=F:\Code\C++\
    set FILE=*.exe	
    set cnt=0
    for /R %PATH% %%s in (%FILE%) do (
    	::echo %%s
    	set /a cnt=!cnt!+1
    )
    if %cnt% EQU 0 (goto fail) else (goto success)
    goto done
    :fail
    echo exe文件已经没有啦,别删啦~
    goto done
    :success
    echo 正在删除所有烦人的exe文件...
    del %PATH%%FILE% /s
    echo 删除了%cnt%个文件!
    goto done
    :done
    echo 执行完成
    endlocal
    

    大功告成!!

    展开全文
  • 自己写的文件删除工具,根据路径,后缀名和文件大小来批量删除文件
  • 三天后,找到了错误原因,DeleteFiles() 函数里,第三个 for 循环应该和第二个并列,如果放在第二个 for 循环里,每次取一个file 就要遍历一次 all_path_del,导致 file 里的文件是整个 all_path_del 然...

    耗费将近一天,主要是对python不熟悉,写的乱七八糟

    最终虽然实现了,但是极度智障的程序,记录一下,等待技术见长,回看再修改吧~~~~~~~

    三天后,找到了错误原因,DeleteFiles() 函数里,第三个 for 循环应该和第二个并列,如果放在第二个 for 循环里,每次取一个file 就要遍历一次 all_path_del,导致 file 里的文件是整个 all_path_del

    然后重新修改了一下程序,并简化了

    import glob
    import os
    
    #定义函数时,可将局部变量传入函数,否则不能运行
    def DeleteFiles(path_del):
       i=0
       all_path_del = []
       for roots, dirname, files in os.walk(path_del):
           all_path_del.append(roots)
           for path in all_path_del:
               files = glob.glob(path + os.sep + '/*.mat')
               if len(files) <= 0:
                   continue
    
            for file in files:
                i=i+1
                if os.path.basename(file)[0:7]=='Brats18':
                    os.remove(file) 
                    print('mat_file has been delete')
                else:
                    print('mat_file  is not exists')
            print('{:d}mat_file has been delete'.format(i))                       
                                             
                
    if __name__ == "__main__":    
        data_path = 'H:/brats18'
        DeleteFiles(data_path)

     

    以下部分可考虑略过~~~仅留作警示~~~

    import glob
    import os
    
    #generate text file of nii data 
    def GenerateText(path_gen):
        all_path_gen = []
        for roots, dirname, files in os.walk(path_gen):
            all_path_gen.append(roots)
            #print(all_path)
            writeText = open('F:/mat/Nii.txt', 'w')    
            for path in all_path_gen:
                folders = glob.glob(path + os.sep + '/*.nii.gz')
                #print(folders)
                if len(folders) <= 0: #when the path is empty ,continue run the program
                    continue
                writeText.write(os.sep + folders[0] + ', ' + '\n')
                writeText.write(os.sep + folders[1] + ', ' + '\n')
                writeText.write(os.sep + folders[2] + ', ' + '\n')
                writeText.write(os.sep + folders[3] + ', ' + '\n')
                writeText.write(os.sep + folders[4] + ', ' + '\n')
            writeText.close()
    
    #delete files that name in text file named Nii 
    def DeleteFiles(path_del, txt_file):
       all_path_del = []
       file_path = []
       with open('F:/mat/Nii.txt', 'r') as nii:
           for roots, dirname, files in os.walk(path_del):
               all_path_del.append(roots)
               for path in all_path_del:
                   files = glob.glob(path + os.sep + '/*.nii.gz')
                   if len(files) <= 0:
                       continue
                   for file in files:
                        os.remove(file)
    #这一块怎么都实现不了,一次只能匹配一个文件删除一个文件,气的我直接用os.remove删掉了。
    #不知道txt文件生成的意义~呼~勉强看吧,继续课题了~以后再战
    # =============================================================================
    #                    for lines in nii:                                       
    #                        if file in lines:
    #                            print(file)
    #                            os.remove(file)
    #                    else:
    #                        print(file)
    #                        os.remove(file)
    # =============================================================================                   
                                   
    if __name__ == "__main__":    
        data_path = 'F:/mat'
        txt = 'F:/mat/Nii.txt'
        #GenerateText(data_path)
        DeleteFiles(data_path, txt)
    

    欢迎批斗~~~

     

     

    展开全文
  • @echo off cd /d "N:\test\" for /f "delims=" %%a in ('dir /b/ad') do (  if "%%~na" neq "16" rd /s /q "%%~a" ) for /f "delims=" %%b in ('dir /b *.* ') do ( ... if "%%~nb" neq "16" ( ...
  • 新建一个TXT文本,将下面的内容复制进去 @Echo Off&SetLocal ENABLEDELAYEDEXPANSIONFOR %%a in (*) do (set "name=%%a"set "name=!...“(”和“)”表示将删除的符号。 将TXT文本保存并将后...
  • shell文件 : removeFiles.sh #!/bin/bash #removeFiles.sh cat wait4delfiles.txt | while read myline do echo rm -rf $myline rm -rf $myline done echo remove success!   wait4delfiles....
  • 本文所述实例主要实现了删除某个盘符下指定位置的文件,可以是TXT、doc、jpeg等格式,只要选定格式后,再定义好盘符,即可一键删除所有指定类型的文件。再次提示删除前请确认,且删除后不可恢复。以下是最主要的核心...
  • 小蜘蛛批量删除指定格式文件,本软件是为了方便大家删除指定目录指定格式的文件 比如某软件运行时产生的图片、log文件等。 程序可能存在bug 在删除文件是请确保文件未被占用 以防
  • 首先选择指定路径, 再指定批量删除文件类型, 即扩展名, 然后点击删除该类型文件
  • python批量删除指定名称文件以及批量更改指定名称文件名称 """删除指定名称文件""" # import os # path = r"E:\guohui\data_set\brainweb\new_data\img\img" # files = os.listdir(path) # for i, f in enumerate...
  • python将文件夹A中的指定文件复制到文件夹B中and批量删除指定文件名的文件python将文件夹A中的指定文件复制到文件夹B中批量删除指定文件 python将文件夹A中的指定文件复制到文件夹B中 复制文件file的核心语法: 使用...
  • 批量删除指定日期的文件
  • linux 批量删除指定类型文件

    万次阅读 2017-12-20 18:30:35
    linux 批量删除指定类型文件上传文件1. 上传项目包51train-1.0-SNAPSHOT2.查看当前项目包下指定文件*.java[root@jxjy-v30-test4 train]# find . -name "*.java" 3. 删除java文件[root@jxjy-v30-test4 train]# find ....
  • 可以根据文件类型批量删除指定类型的文件,可以清理项目下不必要的文件,如:BIN,OBJ,SVN等等的文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,554
精华内容 621
关键字:

批量删除指定文件