Windows CMD批量移除文件名前缀“asc_”和格式前后缀“cs”的方法求助
Windows CMD批量移除文件名前缀“asc_”和后缀“cs”的方法求助
嘿,我来帮你搞定这个批量重命名的问题!你之前用的rename命令只处理了前缀的部分,还没完全达到需求,要同时去掉开头的asc_和文件名里的_cs,可以试试下面两种实用方法:
CMD命令行/批处理方法
因为你的文件名都是asc_<唯一ID>_cs.jpg这种固定格式,我们可以用循环结合环境变量替换来处理:rem 先开启延迟环境变量扩展(如果是在CMD窗口直接执行,需要先输入这条) setlocal enabledelayedexpansion for %f in (asc_*_cs.jpg) do ( set "filename=%f" set "newname=!filename:asc_=!" set "newname=!newname:_cs=!" ren "%f" "!newname!" )要是把这段写成批处理文件(.bat),记得把
%f改成%%f,并且把setlocal enabledelayedexpansion放在文件最开头。这个方法会逐个遍历目标文件,先删掉前缀的asc_,再删掉中间的_cs,最后完成重命名。PowerShell方法(更简洁)
如果你能打开PowerShell,这个命令会更省心,用正则表达式一次性替换掉不需要的部分:Get-ChildItem -Filter "asc_*_cs.jpg" | Rename-Item -NewName { $_.Name -replace '^asc_|_cs', '' }这里的正则表达式
^asc_|_cs会匹配开头的asc_和任意位置的_cs,直接替换为空,比如asc_1234567_cs.jpg会直接变成1234567.jpg。如果要处理其他格式的文件,把-Filter里的.jpg换成.*就行。
备注:内容来源于stack exchange,提问作者Zman
相关产品推荐
相关产品推荐

