删除不具有相同字符数的文件中文本字符串之前和之后的字符

时间:2015-02-25 19:06:36

标签: regex string batch-file

我有一个PDF文件夹,我正在尝试重命名。命名结构为XXX - XXX - YYY - XXX - XXX。我想保留YYY部分,但是我的问题是YYY字符串的长度可能不同而且前后的XXX字符串长度可能不同,所以我不能告诉脚本删除x#of字符...

唯一的常量是YYY字符串之前的空格数。有5个空格,我的想法是数到5个空格,在下一个空格之前保存下一组连续字符(YYY)作为我的字符串来重命名文件。

我模糊地知道如何设置和运行批处理文件,足以知道这应该是可能的,但是非常不合格要弄明白。任何帮助都将非常感谢!

谢谢!

1 个答案:

答案 0 :(得分:1)

This page将是一个很好的起点。我认为你要找的是这样的:

setlocal enabledelayedexpansion

for %%I in (*.pdf) do (
    set "pdffile=%%~nxI"
    set "begin=!pdffile:*     =!"
    set newname=
    for %%x in (!begin!) do if not defined newname set "newname=%%x"
    ren "%%~fI" "!newname!.pdf"
)

您还可以使用能够根据正则表达式重命名的重命名实用程序 - 例如dbenham的jren.bat,或rename from GnuWin32Flexible Renamer来命名其他几个。