繁体   English   中英

使用多个子字符串重命名文件

[英]File rename with multiple substrings

首先,我知道在Stackexchange上这里有很多批处理文件重命名问题,但是在这里或在网上进行的大量搜索都没有给我任何令人满意的结果。 另外,我知道这可以通过其他方法来完成,但是我始终能够使批处理文件按我想要的方式工作(简单的任务,没有太复杂的事情)。 即使我确实找到了一个更简单的解决方案(例如,使用GUI辅助工具),我还是希望获得此问题的解决方案。

我正在尝试重命名我(通常)从手机导入的一堆图像。 图像的默认名称模板为IMG_YYYYMMDD_HHMMSS.jpg ; 例如:IMG_20121224_165222.jpg

因此,假设我有一个包含这些文件的文件夹(以及其他文件)。 我想选择以IMG开头的文件,并将文件重命名为以下格式: YYYY-MM-DD HH.MM.SS.jpg

从使用子字符串开始,这对我而言似乎微不足道,但我无法使其正常工作。 我对变量使用了延迟扩展; 我已将我正在使用的代码添加到本文的结尾。

现在,对于上面的示例文件(IMG_20121224_165222.jpg),我得到的不是“ 2012-12-24 16.52.22.jpg”,而是“ 2012-12-24 16.NAME:15,2NAME:~17,2.jpg” (当我选择要使用的变量时,请参考下面的代码)。 如您所见,奇怪的行为在第一个句点之后(在时间字段中)开始出现,因此我尝试用连字符(如日期)替换它,但还是不行。 我现在得到“ 2012-12-24 16-NAME:15,2NAME:〜17,2.jpg”。

我完全不知道为什么会这样。 如果满足if条件,则只是在某些点之后子字符串才不会扩展。

任何和所有帮助将不胜感激。 谢谢!

这是我用于此任务的最新代码(将名称列表输出到txt文件进行检查)。

@ECHO OFF>NUL

SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION

FOR %%A IN (*.*) DO (
    SET NAME=%%A
    IF /I "!NAME:~0,3!"=="IMG" (
        ECHO !NAME:~4,4!-!NAME:~8,2!-!NAME:~10,2! !NAME:~13,2!-!NAME:15,2!-!NAME:~17,2!.jpg >> output.txt
    )
)

PAUSE

对于那些感兴趣的人,这是输出文件的内容:

2012-12-24 16-NAME:15,2NAME:~17,2.jpg  
2012-12-25 17-NAME:15,2NAME:~17,2.jpg  
2012-12-25 17-NAME:15,2NAME:~17,2.jpg  
2012-12-25 19-NAME:15,2NAME:~17,2.jpg  
2012-12-25 21-NAME:15,2NAME:~17,2.jpg  
2012-12-25 21-NAME:15,2NAME:~17,2.jpg  
2012-12-25 21-NAME:15,2NAME:~17,2.jpg  
2012-12-27 18-NAME:15,2NAME:~17,2.jpg  
2012-12-27 22-NAME:15,2NAME:~17,2.jpg   
2012-12-27 22-NAME:15,2NAME:~17,2.jpg  
2012-12-28 00-NAME:15,2NAME:~17,2.jpg  
2012-12-28 00-NAME:15,2NAME:~17,2.jpg  
2012-12-28 02-NAME:15,2NAME:~17,2.jpg  
2012-12-28 03-NAME:15,2NAME:~17,2.jpg  
2012-12-28 03-NAME:15,2NAME:~17,2.jpg  
2012-12-30 08-NAME:15,2NAME:~17,2.jpg  
2012-12-30 08-NAME:15,2NAME:~17,2.jpg  
2012-12-30 08-NAME:15,2NAME:~17,2.jpg  
2012-12-30 08-NAME:15,2NAME:~17,2.jpg  
2012-12-30 08-NAME:15,2NAME:~17,2.jpg  
2012-12-31 03-NAME:15,2NAME:~17,2.jpg  
2012-12-31 03-NAME:15,2NAME:~17,2.jpg  
2012-12-31 03-NAME:15,2NAME:~17,2.jpg  
2012-12-31 03-NAME:15,2NAME:~17,2.jpg  
2012-12-31 21-NAME:15,2NAME:~17,2.jpg  
2012-12-31 21-NAME:15,2NAME:~17,2.jpg  
2012-12-31 21-NAME:15,2NAME:~17,2.jpg  
2012-12-31 21-NAME:15,2NAME:~17,2.jpg  
2012-12-31 21-NAME:15,2NAME:~17,2.jpg  
2013-01-01 14-NAME:15,2NAME:~17,2.jpg  
2013-06-10 09-NAME:15,2NAME:~17,2.jpg  
2013-06-10 10-NAME:15,2NAME:~17,2.jpg  
2013-06-10 10-NAME:15,2NAME:~17,2.jpg  
2013-06-10 10-NAME:15,2NAME:~17,2.jpg  
2013-06-10 10-NAME:15,2NAME:~17,2.jpg  
2013-06-10 10-NAME:15,2NAME:~17,2.jpg  
2013-06-10 10-NAME:15,2NAME:~17,2.jpg  
2013-06-10 10-NAME:15,2NAME:~17,2.jpg  
2013-06-10 10-NAME:15,2NAME:~17,2.jpg  
2013-06-10 11-NAME:15,2NAME:~17,2.jpg  
2013-06-10 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
2013-06-12 17-NAME:15,2NAME:~17,2.jpg  
ECHO !NAME:~4,4!-!NAME:~8,2!-!NAME:~10,2! !NAME:~13,2!-!NAME:15,2!-!NAME:~17,2!.jpg >> output.txt
                                                             ! ~ missing

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM