首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于更改文件名中日期格式的Batch作业

用于更改文件名中日期格式的Batch作业
EN

Stack Overflow用户
提问于 2021-06-30 10:14:56
回答 1查看 86关注 0票数 0

希望有人能帮我。

我需要一个.bat执行以下操作:

  • 一直在文件夹"A“中运行

等待文件以下列格式出现的1_33530_Jim_Hutchinson_m_23.04.1965_20210628-163636_D-Endo14.pdf

将文件

  • reformatting到1_33530_Jim_Hutchinson_m_19650423_20210628-163636_D-Endo14.pdf

  • 将新文件写入文件夹B

在文件名中,日期格式应该从DD.MM.YYYY更改为YYYYMMDD,所有之前和之后的内容都应该保持不变。

我怎样才能用循环批处理作业来完成这个任务呢?

先向斯文致以亲切的问候和感谢

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 08:49:01

将文件名1_33530_Jim_Hutchinson_m_23.04.1965_20210628-163636_D-Endo14.pdf拆分为三部分。定界符是点。

使用字符串替代拆分1_33530_Jim_Hutchinson_m_23到1_33530_Jim_Hutchinson_m_和23

代码语言:javascript
复制
set filename1=!temp_var1:~0,-2!
set day=!temp_var1:~-2!

使用字符串替代劈裂1965 _20210628-163636_D- and 14至1965和_20210628-163636 D- to 14

代码语言:javascript
复制
set year=!temp_var2:~0,4!
set filename2=!temp_var2:~4!

创建新的文件名

代码语言:javascript
复制
set new_filename=!filename1!!year!!month!!day!!filename2!.pdf

全码

代码语言:javascript
复制
setlocal ENABLEDELAYEDEXPANSION
for %%f in (*.pdf) do (
  for /f "delims=. tokens=1,2,3" %%a in ("%%f") do (
    

    set temp_var1=%%a
    set month=%%b
    set temp_var2=%%c

    set filename1=!temp_var1:~0,-2!
    set day=!temp_var1:~-2!
    set year=!temp_var2:~0,4!
    set filename2=!temp_var2:~4!

    set new_filename=!filename1!!year!!month!!day!!filename2!.pdf

    copy %%f B\!new_filename!
  )
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68192837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档