Board logo

标题: [文本处理] 批处理如何按指定要求批量重命名文件? [打印本页]

作者: WYXpclOK    时间: 2016-3-10 09:36     标题: 批处理如何按指定要求批量重命名文件?

一文件夹里有如下文件名的文件:
2015-0102-AM-0807-01-01
2015-0102-AM-0807-02-02
2015-0102-AM-0807-03-01
2015-0102-AM-0807-05-10
2015-0102-AM-0807-07-01
2015-0102-AM-1020-01
2015-0102-AM-1020-02
2015-0102-AM-1020-03
2015-0102-AM-1020
2015-0102-AM-1020-1
2015-0102-PM-1320-01-05
2015-0102-PM-1320-02-07
2015-0102-PM-1320-03
批处理重命名后的文件是这样的:
2015-0102-AM-0807-01
2015-0102-AM-0807-02
2015-0102-AM-0807-03
2015-0102-AM-0807-05
2015-0102-AM-0807-07
2015-0102-AM-1020-01
2015-0102-AM-1020-02
2015-0102-AM-1020-03
2015-0102-AM-1020
2015-0102-AM-1020-1
2015-0102-PM-1320-01
2015-0102-PM-1320-02
2015-0102-PM-1320-03
简单来说就是将格式是:
AAA-BBB-CC-DD-数字1-数字2  重命名为  AAA-BBB-CC-DD-数字1 删掉“-数字2”其他文件名不变。这能做到吗???在线等
作者: happy886rr    时间: 2016-3-10 09:43

回复 1# WYXpclOK

token吧
作者: WYXpclOK    时间: 2016-3-10 09:46

回复 2# happy886rr


    ???
作者: 522235677    时间: 2016-3-10 11:58

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b *.txt') do (
  3.   set str=%%~na
  4.   if not "!str:~20,1!"=="" echo ren "%%a" "!str:~0,20!%%~xa"
  5. )
  6. pause
复制代码

作者: WYXpclOK    时间: 2016-3-10 12:30

回复 4# 522235677


    AAA-BBB-CC-DD-数字1-数字2  重命名为  AAA-BBB-CC-DD-数字1 删掉“-数字2”其他文件名不变
作者: happy886rr    时间: 2016-3-10 12:32

本帖最后由 happy886rr 于 2016-3-12 00:56 编辑

回复 5# WYXpclOK
这个你应该会的,token啊
  1. for /f "delims=" %%a in ('dir /b *.*^|findstr /i "\-[AP]M\-"') do (for /f "tokens=1-5 delims=-" %%A in ("%%~na") do (ren "%%a"  "%%A-%%B-%%C-%%D-%%E%%~xa"))
复制代码

作者: pcl_test    时间: 2016-3-10 13:01

本帖最后由 pcl_test 于 2016-3-10 13:02 编辑

第三方
  1. ren2 -f "([^-]+-[^-]+-[^-]+-[^-]+-[^-]+)-[^-]+(\.[^\.]+)" "$1$2"
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2