[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]请问如何用BAT批量修改文件名?

是一些型号代码,结构为字母+数字,我想用bat批量改文件名,再所有文件名中字母和数字之间插入“_”符号
以下列举型号代码
KC50E窗机.doc               →修改后为     KC_50_E窗机.doc
KFR35GWP壁挂分体.doc        →修改后为     KFR_35_GWP壁挂分体.doc
WD75WU立机.doc             →修改后为     WD_75_WU立机.doc
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. sed -r "s/^([A-Z]+)([0-9]+)([A-Z]+)/\1_\2_\3/" a.txt >b.txt
复制代码

TOP

回复 2# BAT-VBS


    不好意思偶没有说的很清楚是文件 请问你这个代码怎么用?

TOP

  1. ren2 -f "([a-zA-Z]*)(\d+)(.*)" "$1_$2_$3"
复制代码
ren2.exe 下载地址: http://www.lomont.org/Software/Utilities/Ren2/ren2.exe

TOP

回复 3# YYEnigma


    直接用

TOP

万分感谢tmplinshi 班主的回答 试过了 可以用

TOP

回复 4# tmplinshi


    万分感谢tmplinshi 班主的回答 试过了 可以用, 但能不能写个批处理来解决啊? 我更想知道 批处理是如何定义查找数字与字母之间的

TOP

回复 7# YYEnigma


    BAT没有直接的方法,必须自己写代码做判断,目测代码会比较长、比较复杂。

TOP

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 tmplinshi 于 2012-11-7 20:12 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set find_files="dir /b *.doc | findstr [a-zA-Z][a-zA-Z]*[0-9][0-9]*.*"
  4. for /f "delims=" %%a in (' %find_files% ') do (
  5.     set fname=%%a
  6.    
  7.     for /f "delims=0123456789 tokens=1,*" %%b in ("%%a") do (
  8.         set n=1!fname:*%%b=!
  9.         set /a n = n
  10.         set n=!n:~1!
  11.         
  12.         echo !fname! --^> %%b_!n!_%%c
  13.         ren "!fname!" "%%b_!n!_%%c"
  14.     )
  15. )
  16. pause
复制代码
2

评分人数

TOP

回复 10# tmplinshi


    tmplinshi 版主真伟大啊!学习了 真的很感谢你写的代码 非常好用

TOP

返回列表