我想批量重命名文件名,在名称中插入 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
与构造不同for
,ren
只能用固定字符替换文件名
,例如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 中测试