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

[文件操作] [求助]批处理文件名前几个字移动文件名后

把文件名前几个字移动文件名后。同时可以处理多级文件夹里文件
第一个处理如下:
A文件夹
国语-爱情-黄金分割.MP3
英语-其他-似的打开.MP3
日语-渴望-临渴掘井.MP3

处理后如下:
A文件夹
爱情-黄金分割-国语.MP3
其他-似的打开-英语.MP3
渴望-临渴掘井-日语.MP3
-----------------------------------
第二个处理是相反的
A文件夹
爱情-黄金分割-国语.MP3
处理后如下
A文件夹
国语-爱情-黄金分割.MP3
---------------------------------
第三个处理是把文件名几个字删除
A文件夹
爱情-黄金分割-国语.MP3
其他-似的打开-英语.MP3
日语-渴望-临渴掘井.MP3

处理后如下:
A文件夹
爱情-黄金分割.MP3
其他-似的打开.MP3
渴望-临渴掘井.MP3

这三个批处理不同时运行的.请高手给做下.谢谢了

本帖最后由 CrLf 于 2012-9-26 02:32 编辑

运行此批生成三个bat:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "$1=%%%%b-%%%%c-%%%%a.%%%%d"
  3. set "$2=%%%%c-%%%%a-%%%%b.%%%%d"
  4. set "$3=%%%%a-%%%%b.%%%%d"
  5. for %%z in (1 2 3) do (
  6. echo for /f %%%%f in ('dir /s /a-d /b a\*-*-*.mp3'^) do for /f "tokens=1-4 delims=-." %%%%a in ("%%%%~nxf"^) do ren "%%%%f" "!$%%z!"
  7. )>%%z.bat
复制代码
单个bat,运行时自选要处理的方式:
  1. @echo off
  2. set "$1=%%b-%%c-%%a.%%d"
  3. set "$2=%%c-%%a-%%b.%%d"
  4. set "$3=%%a-%%b.%%d"
  5. call :batch %%$1%% 1
  6. call :batch %%$2%% 2
  7. call :batch %%$3%% 3
  8. set /p n=输入序号:
  9. call :batch %%$%n%%%
  10. pause&exit
  11. :batch
  12. for /f %%f in ('dir /s /a-d /b a\*-*-*.mp3') do (
  13. for /f "tokens=1-4 delims=-." %%a in ("%%~nxf") do (
  14. if "%~2" neq "" echo %2 "%%f" --^> "%1"&exit/b
  15. ren "%%f" "%1"
  16. )
  17. )
复制代码

TOP

回复 2# CrLf

谢谢大哥的帮忙。
我想要的是做三个批处理。我想怎么处理就处理的。这样比较方便
   三个批处理分开来做。 谢谢了

TOP

回复 2# CrLf

还是没能解决。。辛苦了

TOP

会的。请帮忙解决。谢谢了

TOP

会的请帮忙解决。谢谢了

TOP

返回列表