You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

命令行批量重命名文件问题求助

命令行批量重命名文件问题求助

我明白你的需求啦——你想把一批格式为x_beta_数字.txt的文件批量改成x_数字.txt,但用ren x_beta_*.txt x_*.txt没效果,对吧?

为啥原来的命令没用?

Windows命令提示符里的ren(重命名)命令的通配符逻辑和你想的不一样:第二个参数里的*不会自动对应第一个参数中*匹配的内容,它会被当作字面意义的通配符来处理,而文件名里不能包含*,所以系统直接忽略了这个命令,自然没任何变化。

给你几个可行的解决方案:

方案1:用CMD的for循环(适合所有Windows版本)

直接在命令提示符里运行这段命令就行:

for %f in (x_beta_*.txt) do ren "%f" "x_%~nf:x_beta_=%.txt"

如果是写在批处理(.bat)文件里,要把%改成%%

@echo off
for %%f in (x_beta_*.txt) do (
    ren "%%f" "x_%%~nf:x_beta_=%%.txt"
)

原理是:%~nf会提取每个文件的文件名(不含后缀),比如x_beta_5,然后用:x_beta_=把字符串里的x_beta_替换成空,得到5,最后拼接成x_5.txt

方案2:用PowerShell(Windows 10及以上更推荐)

PowerShell的字符串替换更直观,运行这段命令:

Get-ChildItem x_beta_*.txt | Rename-Item -NewName { $_.Name -replace 'x_beta_(.*)\.txt', 'x_$1.txt' }

原理是用正则表达式匹配文件名,把x_beta_后面的数字部分提取出来,替换成x_数字.txt的格式。

你可以根据自己的系统环境选其中一种试试,亲测有效哦!

备注:内容来源于stack exchange,提问作者jarhead

火山引擎 最新活动