JPG同步删除RAW批处理文件

相机挑选JPG照片,同步删除RAW格式文件,批处理文件bat,放到JPG和NEF文件夹根目录
– NEF 文件夹
– JPG 文件夹
文件同步删除.bat

@echo off:: 要同步的文件夹及文件后缀名(相同),即要删除文件的目录
set del_subfix=NEF
:: 要参考的文件夹及文件后缀名(相同),即参考的文件的目录
set ref_subfix=JPGset del_dir=.\%del_subfix%\*.%del_subfix%
set ref_dir=.\%ref_subfix%\*.%ref_subfix%echo.
echo * 确保文件 %ref_subfix% 及 %del_subfix% 文件夹在当前程序目录中,且其文件夹名称与其内部的文件后缀相同且大小写一样。
echo * 以 %ref_subfix% 目录中文件为基准,删除 %del_subfix% 目录中多余的 %del_subfix% 格式文件
echo.
setlocal enabledelayedexpansion
set ref_array_index=0
for /f "delims=" %%m in ('dir /a-d /b %ref_dir%') do (set ref_array[!ref_array_index!]=%%~nmset /a ref_array_index=!ref_array_index!+1
)
echo * %ref_subfix% 文件夹中共有!ref_array_index!个 %ref_subfix% 文件
set del_array_index=0
for /f "delims=" %%m in ('dir /a-d /b %del_dir%') do (set del_array[!del_array_index!]=%%~nmset /a del_array_index=!del_array_index!+1
)
echo * %del_subfix% 文件夹中共有 !del_array_index! 个 %del_subfix% 文件
echo.
echo.
echo * 继续分析查找要删除的文件请输入 1 ,取消输入 0 或其他字符
set /p input_confirm=
echo.
if %input_confirm% neq 1 (echo * 已取消!goto EndTip
)
echo 正在分析对比找出要删除的文件:
set del_index=0
set count=0
:BeginLoop2if !del_index! geq !del_array_index! ( goto EndLoop2)set tempDelFile=!del_array[%del_index%]!set /a del_index=!del_index!+1set index_ref=0set flag=0;:BeginLoopif %index_ref% geq !ref_array_index! ( goto EndLoop)set tempRefFile=!ref_array[%index_ref%]!if !tempDelFile! equ !tempRefFile! (set flag=1echo 已查找到名称是!tempDelFile!.%ref_subfix%的文件...进度!del_index!/!del_array_index!goto EndLoop) else (set flag=0)set /a index_ref=%index_ref%+1goto BeginLoop:EndLoopif !flag! == 0 (echo 未查找到名称是!tempDelFile!.%ref_subfix%的文件...进度!del_index!/!del_array_index!set final_array[!count!]=!tempDelFile!.!del_subfix!set /a count=!count!+1)goto BeginLoop2
:EndLoop2
echo.
echo.
if !count! == 0 (echo * 没有任何 %del_subfix% 文件需要删除goto EndTip
)
echo * 共需删除 !count! 个 %del_subfix% 文件,文件列表如下:
set index_tip=0
:BeginLoop1if %index_tip% geq !count! (goto EndLoop1)echo !final_array[%index_tip%]!set /a index_tip=!index_tip!+1goto BeginLoop1
:EndLoop1
echo.
echo.
echo * 确认删除请输入 1 ,取消输入 0 或其他字符
set /p input_source=
echo.
if %input_source% neq 1 (echo * 已取消!goto EndTip
)
set index_final=0
echo ========开始删除=========
echo.
:BeginLoop3if %index_final% geq !count! (goto EndLoop3)del /f /s /q .\%del_subfix%\"!final_array[%index_final%]!"set /a index_final=%index_final%+1set /a progress=%index_final%*100/!count!echo 进度:%index_final%/!count!!progress!%)goto BeginLoop3
:EndLoop3
echo.
echo ========删除结束=========
echo.
echo.
echo * 文件同步删除完成,共删除 !index_final! 个 %del_subfix% 文件!
:EndTip
echo.
echo. & pause

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/76860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

InnoDB的MVCC实现原理?MVCC如何实现不同事务隔离级别?MVCC优缺点?

概念 InnoDB的MVCC(Multi-Version Concurrency Control)即多版本并发控制,是一种用于处理并发事务的机制。它通过保存数据在不同时间点的多个版本,让不同事务在同一时刻可以看到不同版本的数据,以此来减少锁竞争&…

针对 Java从入门到精通 的完整学习路线图、各阶段技术点、CTO进阶路径以及经典书籍推荐。内容分阶段展开,兼顾技术深度与职业发展

以下是针对 Java从入门到精通 的完整学习路线图、各阶段技术点、CTO进阶路径以及经典书籍推荐。内容分阶段展开,兼顾技术深度与职业发展。 一、学习路线图分阶段详解 阶段1:Java基础入门(3-6个月) 目标:掌握Java核心…

报错:Nlopt

报错:Nlopt CMake Error at TGH-Planner/fast_planner/bspline_opt/CMakeLists.txt:20 (find_package):By not providing "FindNLopt.cmake" in CMAKE_MODULE_PATH this project hasasked CMake to find a package configuration file provided by "…

鸿蒙公共通用组件封装实战指南:从基础到进阶

一、鸿蒙组件封装核心原则 1.1 高内聚低耦合设计 在鸿蒙应用开发中,高内聚低耦合是组件封装的关键准则,它能极大提升代码的可维护性与复用性。 从原子化拆分的角度来看,我们要把复杂的 UI 界面拆分为基础组件和复合组件。像按钮、输入框这…

Linux 网络基础二 ——应用层HTTP\HTTPS协议

我们程序员写的一个个解决我们实际问题,满足我们日常需求的网络程序,都是在应用层。 前面写的套接字接口都是传输层经过对 UDP 和 TCP 数据发送能力的包装,以文件的形式呈现给我们,让我们可以进行应用层编程。换而言之&#xff0c…

Spark-SQL

Spark-SQL 概述 Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块 Shark 是伯克利实验室 Spark 生态环境的组件之一,是基于 Hive 所开发的工具,它修改了内存管理、物理计划、执行三个模块,并使之能运行在 Spark 引擎上…

Java 在人工智能领域的突围:从企业级架构到边缘计算的技术革新

一、Java AI 的底层逻辑:从语言特性到生态重构 在 Python 占据 AI 开发主导地位的当下,Java 正通过技术重构实现突围。作为拥有 30 年企业级开发经验的编程语言,Java 的核心优势在于强类型安全、内存管理能力和分布式系统支持,这…

编程实现除法程序时需要注意的细节

使用Python实现除法程序时,需注意以下关键细节: 除数为零的处理 必须检查除数是否为零,否则会触发ZeroDivisionError异常。可通过try-except结构捕获异常并处理。 整数除法与浮点数除法的区别 • 使用/运算符时,无论操作数是否为…

Java万级并发场景-实战解决

今天我们来做一个典型的消费力度能达到万级别的并发场景,老师点名-学生签到 正常情况 正常情况来说是不同班级下的老师发布不同的点名--然后不同班级下的很多学生同一时间进行签到,签到成功就去修改数据库,签到失败就返回,但是这…

openGauss新特性 | 自动参数化执行计划缓存

目录 自动化参数执行计划缓存简介 SQL参数化及约束条件 一般常量参数化示例 总结 自动化参数执行计划缓存简介 执行计划缓存用于减少执行计划的生成次数。openGauss数据库会缓存之前生成的执行计划,以便在下次执行该SQL时直接使用,可…

计算机操作系统——存储器管理

系列文章目录 1.存储器的层次结构 2.程序的装入和链接 3.连续分配存储管理方式(内存够用) 4.对换(Swapping)(内存不够用) 5.分页存储管理方式 6.分段存储管理方式 文章目录 系列文章目录前言一、存储器的存储结构寄存器&…

KF V.S. GM-PHD

在计算机视觉的多目标跟踪(MOT)任务中,卡尔曼滤波(KF)和高斯混合概率假设密度(GM-PHD)滤波器是两种经典的状态估计方法,但它们的原理和应用场景存在显著差异。以下是两者的核心机制和…

车载通信架构 --- DOIP系统机制初入门

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

C++对象池设计:从高频`new/delete`到性能飞跃的工业级解决方案

一、new/delete的性能之殇:一个真实的生产事故 2023年某证券交易系统在峰值时段出现请求堆积,事后定位发现:每秒40万次的订单对象创建/销毁,导致: 内存碎片率高达37%(jemalloc统计)malloc调用…

【C/C++】深入理解整型截断与提升:原理、应用与区别

文章目录 1. 整形截断(Integer Truncation)1.1 整形截断的例子1.2 整形截断的细节 2. 整形提升(Integer Promotion)2.1 整形提升的规则2.2 整形提升的示例2.3 整形提升的实际应用2.4 整型提升与标准操作符 3. 整型截断与提升的区别…

python蓝桥杯备赛常用算法模板

一、python基础 (一)集合操作 s1 {1,2,3} s2{3,4,5} print(s1|s2)#求并集 print(s1&s2)#求交集 #结果 #{1, 2, 3, 4, 5} #{3}(二)对多维列表排序 1.新建列表 list1[[1,2,3],[2,3,4],[0,3,2]] #提取每个小列表的下标为2的…

【模块化拆解与多视角信息3】教育背景:学历通胀时代的生存法则

教育背景:学历通胀时代的生存法则 写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算…

uniapp实现H5页面麦克风权限获取与录音功能

1.权限配置 在uni-app开发H5页面时,需要在manifest.json文件中添加录音权限的配置。具体如下: {"h5": {"permissions": {"scope.record": {"desc": "请授权使用录音功能"}}} }这段配置代码是用于向…

功能丰富的PDF处理免费软件推荐

软件介绍 今天给大家介绍一款超棒的PDF工具箱,它处理PDF文档的能力超强,而且是完全免费使用的,没有任何限制。 TinyTools(PC)这款软件,下载完成后即可直接打开使用。在使用过程中,操作完毕后&a…

鸿蒙开发-ArkUi控件使用

2.0控件-按钮 2.1.控件-文本框 Text(this.message).fontSize(40) // 设置文本的文字大小.fontWeight(FontWeight.Bolder) // 设置文本的粗细.fontColor(Color.Red) // 设置文本的颜色------------------------------------------------------------------------- //设置边框Tex…