Batch file 编写用于重命名文件的批处理程序

Batch file 编写用于重命名文件的批处理程序,batch-file,executable,renaming,Batch File,Executable,Renaming,先生们,女士们,关于节目的一个问题: 在以下条件下,我需要编写一个程序来批量重命名文件: 所有文件都在一个目录中。可以是与可执行文件相同的目录,如果这简化了路径 所有文件都是.pdf,但我相信这不重要 所有文件都以从01到99的两位数前缀开头 e、 g.:01_FileNameOriginal1.pdf;02_filename original2.pdf 这个两位数的数字需要保留 必须将所有名称修改为预定义的文件名范围(类似于数据库),该数据库可以嵌入可执行文件中,或从外部文件.txt、.csv

先生们,女士们,关于节目的一个问题:

在以下条件下,我需要编写一个程序来批量重命名文件:

所有文件都在一个目录中。可以是与可执行文件相同的目录,如果这简化了路径

所有文件都是.pdf,但我相信这不重要

所有文件都以从01到99的两位数前缀开头 e、 g.:01_FileNameOriginal1.pdf;02_filename original2.pdf 这个两位数的数字需要保留

必须将所有名称修改为预定义的文件名范围(类似于数据库),该数据库可以嵌入可执行文件中,或从外部文件.txt、.csv中读取,只要是最可行的。 e、 g.:01_NewName1.pdf;02_NewName2.pdf

一些原始文件名包含一个过期日期,标记为EXP-YYYY-MMM-DD,应该以不同的格式追加到新名称后:e_-yyy\u-MM\u-DD。因此,基本上,它需要能够使用for语句循环查找文件数,并使用if语句搜索EXP匹配的大小写,剪切字符串并在文件扩展名之前以重新排列的格式追加

程序的结果可以是重命名,也可以返回重命名的副本。前者似乎更容易做到

因此,总结一下: 步骤1:运行程序 步骤2:整数=文件数 步骤3:循环: 3.检查前两位数字,复制到临时字符串。 3.B将临时字符串与预定义文件名数组进行比较。数组可以嵌入到代码中,也可以从外部读取。为了方便用户,从.csv外部读取似乎更容易在以后修改文件名。 3.C是否重命名。如果匹配:

假设旧文件具有以下名称:01_FileNameOriginal EXP YYYY MM DD Excessivetext.pdf 将前两位数字复制到temp2字符串 扫描EXP的旧名称,查找文件名的长度,if=EXP,匹配大小写,并剪切以下10个字符。将YYYY、MM和DD放在单独的字符串中。所有基本值现在都已从旧文件名中提取。 将dbl数字与数据库中文件名的前两位匹配。将新名称复制到临时字符串。 用新名称重命名文件:eg 01_NewName.pdf 在扩展名之前追加日期字符串:例如01_NewName_e_YYYY_MM_DD.pdf 注意:只要空格替换为下划线,就可以在单个字符串中提取日期。可能比程序短。 如果不匹配:复制旧文件名,并将其放入临时字符串中,以在进程结束时作为错误或.txt文件返回,文件名无法重命名。 步骤4:完成并返回错误或报告,请参见上一步

问题: 基于这些条件,最简单的开始方式是什么?有没有免费软件可以做这样的事情。如果不是,最好的方法是什么。我有基本的编程知识java /vBA,一些C++的小程序,但没有什么了不起的。我只在编程环境中编程,从未生成任何可执行文件或批处理文件等,因此我不知道如何启动atm,但不介意尝试一下。只要这是一个引导射击,而不是在黑暗中,因为这就是我现在的位置

我很想听听你对此的想法

问候


Wouter

您可能很容易用这些语言中的任何一种来完成,因为您有很多规则需要解析文件名。那么,我该如何准确地将其转换为batch.exe文件呢?我听说Python可以做到这一点,但我没有使用这种语言的经验,所以我需要足够的资源来开始。该程序最终需要在任何类型的windows操作系统上运行,而不管安装了什么软件。所以我不希望它基于excel,或需要任何第三方软件/免费软件/。。。这会改变你处理问题的方式吗?你可以用C语言或C++语言编写。编写程序后,您将对其进行编译,使其处于可执行状态。或者,如果安装了Java,您可以用Java编写它并创建一个可执行的JAR文件。虽然在方法上,你可以说java是第三方软件,因此前者是更好的选择。