微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 REN 在 docs 命令行中批量重命名文件名的一部分

如何解决使用 REN 在 docs 命令行中批量重命名文件名的一部分

试图弄清楚如何使用“ren”在 doc 命令行中批量重命名文件名的一部分。

我的文件名:
abc_124_xyz_2021122345_123.txt
abc_124_xyz_2021122346_124.txt
abc_124_xyz_2021122347_125.txt

如何去掉多余的“2”(上面以粗体突出显示

我尝试使用“?”:
任 abc_124_xyz_20211?234?-???.txt abc_124_xyz_20211234?-???.txt

还尝试使用 '*' 代替 ??? 都没有工作。 出于某种原因,下划线显示为斜体 ?。所以我用了连字符。 请参阅附带的屏幕截图,其中有下划线。

screenshot

解决方法

据我所知,windows 无法按照您想要的方式将 abc$1def$2ghi.txt 重命名为 abcdef$2ghi.txt(去掉第一个字段)。

无论如何,也许更通用的单一通配符重命名会起作用:

首先,检查是否包含超出预期的内容:

dir abc_124_xyz_202112????????.txt

如果没问题,那么运行:

ren abc_124_xyz_202112????????.txt abc_124_xyz_20211????????.txt

如果不行,您可以(1)将文件移动到外部文件夹以单独重命名它们或(2)构建一个重命名脚本,过滤掉特定文件并通过子字符串版本一一重命名跳过第 17 个字符:

  1. 辅助文件夹方法:
md rentemp
move abc_124_xyz_20211?234?_???.txt rentemp
ren rentemp\abc_124_xyz_202112????????.txt abc_124_xyz_20211????????.txt
move rentemp\* .
rd rentemp
  1. 辅助脚本方法:
for %f in ("abc_124_xyz_20211?234?_???.txt") do (
 set n=%f
 echo ren %n% %n:~0,17%%n:~18% >> renamer.bat
)

然后运行renamer.bat

我们需要renamer.bat,因为如果我们重命名循环中使用的自己的文件,循环本身就会中断,所以下面的脚本不起作用:

for %f in ("abc_124_xyz_20211?234?_???.txt") do (
 set n=%f
 ren %n% %n:~0,17%%n:~18%
)
,

最终使用了 powershell:
Get-ChildItem *.pdf | Rename-Item -NewName { $_.Name -replace '2021122','202112' }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?