如何使用“ ren”或“ rename”来截断文件名,直到强调为止?

时间:2019-10-24 14:48:36

标签: powershell batch-file cmd

我在C:\aaa\temp中保存了以下文件名

之前:

92485345_A0027777882244.zip
87493354_A0027684085444.zip
87111901_A0027871905777.zip

文件名中的一些固定规则:

  1. 我需要删除字符,直到下划线“ _”
  2. 下划线后的名称始终以A0027开头

有人可以教我如何编写脚本来批量重命名它们,如下所示:

之后:

A0027777882244.zip
A0027684085444.zip
A0027871905777.zip

2 个答案:

答案 0 :(得分:1)

如果下划线_前面的字符数始终相同,请使用以下命令:

rem // Expecting 8 characters in front of `_`:
ren "????????_A0027*.zip" "/////////*.*"

这是ren的未记录功能,其描述为there


_前面的字符数可以变化时,您必须使用dir /B来获取匹配文件的列表,然后使用for /F loop来捕获它并拆分文件名,然后ren最终重命名每个文件:

for /F "tokens=1* delims=_" %E in ('dir /B /A:-D "*_A0027*.zip"') do @ren "%E_%F" "%F"

要在中使用此代码,您需要将%更改为%%

for /F "tokens=1* delims=_" %%E in ('dir /B /A:-D "*_A0027*.zip"') do (
    ren "%%E_%%F" "%%F"
)

答案 1 :(得分:0)

  • 列出目录中的文件。
  • 遍历名称列表。
  • 删除字符直到下划线(包括下划线)。
  • 遍历列表时,将每个文件重命名为新名称。

现在,如果您选择使用脚本或管道来执行此操作,则取决于您。