[英]Batch Renaming part of a file name in docs command line using REN
试图弄清楚如何使用“ren”在 doc 命令行中批量重命名文件名的一部分。
我的文件名:
abc_124_xyz_202112 2 345_123.txt
abc_124_xyz_202112 2 346_124.txt
abc_124_xyz_202112 2 347_125.txt
我如何摆脱多余的“2”(上面以粗体突出显示)
我尝试使用“?”:
任 abc_124_xyz_20211?234?-???.txt abc_124_xyz_20211234?-???.txt
和
还尝试使用'*'代替??? 都没有工作。 出于某种原因,下划线显示为斜体?。 所以我用了连字符。 请参阅附带的屏幕截图,其中有下划线。
据我所知,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) 构建一个重命名器脚本,过滤掉特定文件并一个一个地重命名,通过 substring 版本跳过第十七个字:
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
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 | 重命名项目 -NewName { $_.Name -replace '2021122', '202112' }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.