bat脚本删除文件夹下的重复文件

应用场景

  • 日常开发中,eclipse 添加一些插件包等。例如,定制主题(theme)、使eclipse 支持 sbt等需要向 plugins 等目录下拷贝一些 jar包。有可能由于操作不当,导致存在多(bu)份(shan)备(bu)份(shuang)。
  • 也可适用于Windows其他类似场景

代码实现

  • 实验删除的是eclipse 下的重复 jar 包
    • 文件名形如:
      • org.scala-ide.sbt.compiler.interface.source_0.13.6.v-20150303-2034 (2).jar
  • bat 文件名
    • bat_duplicated_file.bat
  • 代码
@echo off
:: 将目录下的所有文件名导入 src_file_name.txt 文件
for %%i in (*.*) do echo "%cd%\%%i"  >> src_file_name.txt

:: 将删除的文件名导入 del_file_name.txt 文件,并计数
set /a cnt = 0
for %%i in (*")".jar) do ( echo "%cd%\%%i"  >> del_file_name.txt
    del /a /f /q "%cd%\%%i"
    set /a cnt+=1)

echo "The number of Deleted file: %cnt%" >> del_file_name.txt 
pause

执行过程

  • 文件路径
    • C:\Users\Khgines\Desktop\bat_demo
  • 文件目录
    bat脚本删除文件夹下的重复文件_第1张图片

  • 批处理执行

    • 在 bat_demo 目录空白处,右键 => 在此处打开命令窗口(W) => 执行 bat_duplicated_file.bat
  • 结果整体显示
    bat脚本删除文件夹下的重复文件_第2张图片


问题记录

  • set /a cnt = 0
    • 计算器
    • 缺少 /a 参数,多次执行, 计数器无效(未归零)

References

  • bat的变量与命令set的用法
  • 批处理中的行,段注释
  • Windows bat脚本之for循环之 一(推荐)

你可能感兴趣的:(Windows系列)