首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批重命名文件保持子字符串并添加mm和yy

批重命名文件保持子字符串并添加mm和yy
EN

Stack Overflow用户
提问于 2014-07-14 01:26:26
回答 1查看 334关注 0票数 0

我有一系列有长文件名的文件。对于每个包含连字符的文件名,我希望将子字符串保留在6-8位置,将_FM07_FY14.prn追加到名称中,忽略原始文件名的其余部分。新的扩展现在是.prn。两位数07代表月份,14是年份。月和年可以从“创建日期”属性中找到。如果你能告诉我如何从创建的日期自动捕获这个mm和yy,我将非常感激。硬编码这个部分也是可以的,因为我可以根据创建的日期对文件进行排序,并将它们放在单独的文件夹中。

例如

will 1234.A.b.1233新文件名为D07_FM01_FY14.prn

BcbaA30dls-d343.a.123d新文件名为A30_FM01_FY14.prn

新文件名为G12_FM01_FY14.prn

这是我在阅读了很多文章之后想到的.bat文件,我不知道如何提取mm和yy,所以我对它进行了硬编码。我不熟悉Powershell。我只能处理.bat或.cmd文件,并在命令提示符下运行它。任何和所有的帮助都将受到高度赞赏。谢谢!

代码语言:javascript
复制
@ECHO OFF
SETLOCAL


for %%F in (*.*) do (
 SET "name=%%a"  
 set "var=_FM01_FY14.prn"

 ren *-*  "%name:~6,8%var%"
)

*endlocal*
EN

回答 1

Stack Overflow用户

发布于 2014-07-15 00:39:11

代码语言:javascript
复制
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir\one"
PUSHD %sourcedir%
FOR /f "delims=" %%a IN (
 'dir /b /a-d "*" '
 ) DO (
 SET name=%%a
 SET fdate=%%~ta
 ECHO(REN "%%a" "!name:~5,3!_FM!fdate:~3,2!_FY!fdate:~8,2!.prn"
)
popd

GOTO :EOF

您需要更改sourcedir的设置以适应您的情况。

我使用的日期格式是dd/mm/yyyy,如果您的格式不同,则需要更改!fdate:~m,2!短语中的偏移量。m的值是从第一个字符到日期字符串的偏移量(第二个参数是要选择的字符数)。

所需的REN命令只是为测试目的而编写的ECHO在验证命令是正确的之后,将ECHO(REN更改为REN以实际重命名文件。

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

https://stackoverflow.com/questions/24728449

复制
相关文章

相似问题

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