在 Windows 中使用 ren 在文件名中批量插入字符

在 Windows 中使用 ren 在文件名中批量插入字符

我想批量重命名文件名,在名称中插入 4 个字符(“Lna_”),如下所示:

Cdt001_10x_G75_01s_Ft1.tif -> Cdt001_10x_G75_01s_Lna_Ft1.tif , 
Cdt001_10x_G75_01s_Ft2.tif -> Cdt001_10x_G75_01s_Lna_Ft2.tif , 
Cdt001_10x_G75_01s_Ft3.tif -> Cdt001_10x_G75_01s_Lna_Ft3.tif , 
...

有可能吗?谢谢

答案1

使用解析将下划线处的名称拆分for /f,然后插入_LNA到第 4 个标记后面。

在 cmd 行中

for %A in (*_*_*_*_*.tif) do @for /f "tokens=1-4* delims=_" %B in ("%A") Do @echo Ren "%A" "%B_%C_%D_%E_LNA_%F"

如果示例输出

Ren "Cdt001_10x_G75_01s_Ft1.tif" "Cdt001_10x_G75_01s_LNA_Ft1.tif"
Ren "Cdt001_10x_G75_01s_Ft2.tif" "Cdt001_10x_G75_01s_LNA_Ft2.tif"
Ren "Cdt001_10x_G75_01s_Ft3.tif" "Cdt001_10x_G75_01s_LNA_Ft3.tif"

看起来不错,删除了 ren 前面的回声。

在批处理文件中,将所有百分号加倍。

答案2

与构造不同forren只能用固定字符替换文件名
,例如ren * *.bat将所有文件名更改为以.bat

ren允许(附加)文件名后缀但不允许附加前缀(有效,因为?*通配符都包含 0 个实例)。

在您的情况下,您需要在字符前添加一些前缀字符来使文件名唯一,即文件扩展名之前的数字:.tif,因此for&ren混合可以解决这个问题,尽管在这种情况下,for命令本身可以通过使用下划线进行标记来单独完成_

混合解决方案:

ren "*" "///////////////////*"
for %i in (*) do ren %i Cdt001_10x_G75_01s_Lna_%i

在 Win 10 cmd 中测试

相关内容