【发布时间】:2014-09-03 21:24:58
【问题描述】:
我有一系列文件名很长的文件。对于每个包含连字符的文件名,我想将子字符串保留在位置 6-8,将 _FM07_FY14.prn 附加到名称并忽略原始文件名的其余部分。新的扩展名现在是 .prn。两位数 07 代表月份,14 代表年份。可以从“创建日期”属性中找到月份和年份。如果您能告诉我如何从创建日期自动捕获此 mm 和 yy,将不胜感激。硬编码这部分也可以,因为我可以按创建日期对文件进行排序并将它们放在单独的文件夹中。
例如
aaaaaD07.dfdd-1234.A.b.1233 新文件名将是 D07_FM01_FY14.prn
bbcbaA30dls-d343.a.123d 新文件名将是 A30_FM01_FY14.prn
cdq0dG12ir3-438d.dfd.txt 新文件名将是 G12_FM01_FY14.prn
这是我在这里阅读了很多帖子后提出的 .bat 文件,我不知道如何提取 mm 和 yy,所以我对其进行了硬编码。我对 Powershell 不熟悉。我只能处理 .bat 或 .cmd 文件并在命令提示符下运行它。任何和所有的帮助将不胜感激。谢谢!
@ECHO OFF
SETLOCAL
for %%F in (*.*) do (
SET "name=%%a"
set "var=_FM01_FY14.prn"
ren *-* "%name:~6,8%var%"
)
*endlocal*
【问题讨论】:
-
如果有任何帮助,我不会走这条路,而是使用Total Commander,使用多重重命名工具(CTRL-M)和以下重命名字符串:[N6-8]_FM [=tc.creationdate.M]_FY[=tc.creationdate.M]
-
您确定要的是 creation 日期,而不是 last-update 日期吗?
-
嗨 Magoo,任何一个日期都可以,因为这些文件在扩展名和名称更改之前不会更新。知道最后更新日期的参数也很酷,以防万一。
标签: date batch-file substring rename