Board logo

标题: [文本处理] 批处理如何将文件名中以指定字符分割的两部分字符串调换/交换? [打印本页]

作者: mm123321    时间: 2016-6-13 10:51     标题: 批处理如何将文件名中以指定字符分割的两部分字符串调换/交换?

本帖最后由 pcl_test 于 2016-6-17 14:20 编辑

如以下文件:
123——abc.flv
frgrg——u677i.txt
处理后为
abc——123.flv
u677i——frgrg.txt
作者: mm123321    时间: 2016-6-17 08:47

:):):):)
作者: GNU    时间: 2016-6-17 09:00

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-3 delims=.—" %%i in ('dir /b /a-d "*——批处理之家.flv"') do (
  4.     set PartA=%%i
  5.     set PartB=%%j
  6.     set PartC=%%k
  7.     ren "!PartA!——!PartB!.!PartC!" "!PartB!——!PartA!.!PartC!"
  8. )
复制代码

作者: GNU    时间: 2016-6-17 09:02

  1. @echo off
  2. for /f "tokens=1-3 delims=.—" %%i in ('dir /b /a-d "*——批处理之家.flv"') do (
  3.     ren "%%i——%%j.%%k" "%%j——%%i.%%k"
  4. )
复制代码

作者: mm123321    时间: 2016-6-17 09:23

回复 4# GNU


倘若后面不一定是 【批处理之家】  可能是别的  可以不手动修改吗?
作者: GNU    时间: 2016-6-17 09:32

回复 5# mm123321


    把代码里面的——批处理之家删掉
作者: 小程936    时间: 2016-6-17 09:35

本帖最后由 小程936 于 2016-6-17 11:41 编辑

回复 5# mm123321
  1. for /f "tokens=1-3 delims=.—" %%i in ('dir /b /a-d') do (ren "%%i——%%j.%%k" "%%j——%%i.%%k")
复制代码
或者
  1. for /f "tokens=1-3 delims=.—" %%1 in ('dir /b /a-d') do (ren "%%1——%%2.%%3" "%%2——%%1.%%3")
复制代码
--------------------------------------------欢迎点这儿的评分↓↓↓↓↓和置顶(TOP)
作者: mm123321    时间: 2016-6-17 09:55

回复 7# 小程936


大神膜拜  强强强!
作者: pcl_test    时间: 2016-6-17 14:24

本帖最后由 pcl_test 于 2016-6-17 14:26 编辑

第三方
ren2 -f "(.*)——(.*)(\..*)" "$2——$1$3"




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