是否可以使用带通配符的重命名命令来更改文件名前缀?

是否可以使用带通配符的重命名命令来更改文件名前缀?

我已经读过Windows RENAME 命令如何解释通配符正如我所理解的,但仍然无法决定是否可以使用某些通配符组合来使 RENAME 执行此操作:

Old file names: abc001.txt, abc002.txt, abc003.txt, ... etc
New file names: demo_001.txt, demo_002.txt, demo_003.txt, ... etc
or: x001.txt, x002.txt, x003.txt, ... etc
or: file01.txt, file02.txt, file03.txt, ... etc

我所知道的是,会将所有前缀rename abc*.txt xyz*.txt更改为,但仅仅是因为和的长度相同。是否有一个简单的重命名命令可以处理较短或较长的前缀……或者您必须使用批处理来执行此类重命名?abcxyzabcxyz

答案1

答案是不行,您无法仅使用带通配符的 RENAME 命令随意更改文件名前缀的长度。这将需要一些更复杂的脚本,或者使用非标准的第三方工具。

如果您仔细阅读规则,您会发现源掩码中的通配符对重命名结果没有影响 - 它们仅过滤要重命名的文件。目标掩码中的非通配符前缀字符将与原始名称中的字符一一替换。

答案2

在 PowerShell 中,对于第一个示例,您可以使用:

Dir C:\folder | ren –NewName {$_.name -replace "abc","demo_"}

-whatif如果要在执行命令之前测试该命令,请添加最后一个参数

答案3

以下是使用的方法JP Software 的 TCC/LE,命令解释器,其REN命令支持正则表达式:

ren ::abc(\d+.txt) ::demo_\1

如果没有正则表达式,它仍然是一行代码。只需使用@INSTR[]变量函数和FOR命令:

for i in (abc*.txt) do ren %i demo_%@instr[3,,%i]

进一步阅读

  • JP 软件。. 采取命令/TCC 帮助。
  • JP 软件。为了. 采取命令/TCC 帮助。
  • JP 软件。@INSTR. 采取命令/TCC 帮助。

相关内容