标题: [文件操作] [已解决]求个文件批量改名的批处理,先谢了 [打印本页]
作者: DDDYJQ1 时间: 2014-7-2 00:28 标题: [已解决]求个文件批量改名的批处理,先谢了
有个文件夹下有一大堆的.MP3文件,如
茨威格.[象棋的故事(3)].张长水---[阳光宝贝][bbs.bbxpp.cn].mp3
歌德.[少年维特的烦恼]B---[阳光宝贝][bbs.bbxpp.cn].mp3
陀思妥耶夫斯基.[白夜]---[阳光宝贝][bbs.bbxpp.cn].mp3
...
想把文件名后面一段"---[阳光宝贝][bbs.bbxpp.cn]"去掉,形成
茨威格.[象棋的故事(3)].张长水.mp3
歌德.[少年维特的烦恼]B.mp3
陀思妥耶夫斯基.[白夜].mp3
...
先谢了
作者: CrLf 时间: 2014-7-2 04:50
纯批可以这样(测试无误后把 echo ren 改成 ren):- @echo off
- for /f "delims=" %%a in ('dir *---*.mp3') do (
- set str=%%a
- setlocal enabledelayedexpansion
- set "new=!str---="!
- echo ren !str! "!new!.mp3"
- endlocal
- )
- pause
复制代码
bkren.exe http://bbs.bathome.net/viewthread.php?tid=13231- bkren "---\.*\.mp3" ".mp3"
复制代码
perl:- foreach $file (glob "*---*.mp3"){
- $newFile = $file;
- $newFile =~ s/---.*\././;
- rename $file,$newFile;
- }
复制代码
powershell:- Get-ChildItem *---*.mp3 | Rename-Item -NewName {$_.Name -replace '---.*\.','.'}
复制代码
作者: hlzj88 时间: 2014-7-2 06:29
以下是我一直在用的音视频文件改名用的bat,当然也可以扩展到什么txt,jpg。- @echo off
- title 音视频文件批量改名工具-by仰天长啸
- reg add HKCU\console /v LoadConIme /t REG_DWORD /d 1 /f >nul 2>nul
- color 2e
- :begin
- echo.
- echo.
- echo.
- echo ╭────────────────────────────────╮
- ECHO │ 说 明 本批处理需要放在歌曲文件夹里执行 │
- ECHO │ │
- ECHO │ A. 消除文件名前的数字和其他 (文件范围是 mp3 wma wmv rm rmvb) │
- ECHO │ │
- ECHO │ b. 消除文件名前的其他 │
- ECHO │ 范围: mp3 wmv wma rm* mp4 flv avi 可自己添加 │
- ECHO │ c. 把文件夹名(歌手 连续剧)加到文件前,如果重复可用 A b来消除 │
- ECHO │ │
- ECHO │ Q. 退出 说明:可以根据你的要求来修改不同文件类型 │
- ECHO ╰────────────────────────────────╯
- echo.
- SET Choice=
- SET /P Choice= 请选择要进行的操作(A B Q)回车确定!
- ECHO.
-
- IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
- IF /I '%Choice%'=='A' GOTO qu1
- IF /I '%Choice%'=='B' GOTO qu2
- IF /I '%Choice%'=='c' GOTO wen
- IF /I '%Choice%'=='Q' exit
- GOTO begin
-
- :qu1
- cls&setlocal ENABLEDELAYEDEXPANSION
- @echo 你的选择包含去掉文件名中的 12345 67890 .
- @echo 请输入你额外需要去掉的文件名中的关键词并回车
- @echo 无也请回车,在这个界面里同样可以使用输入法:
- set /p var=
- for %%a in (*.mp3 *.wmv *.wma *.rm* *.mp4 *.flv *.avi) do (
- set name=%%~na
- set name2=%%~xa
- for %%j in (0 1 2 3 4 5 6 7 8 9 . !var!) do set name=!name:%%j=!
- call ren "%%a" "!name!!name2!"
- )
- cls
- echo.
- echo.
- echo.
- echo.
- @echo 已经完成 请核对有什么还需要去掉 可以输入再来一次
- echo.
- goto begin
-
- :qu2
- cls&setlocal ENABLEDELAYEDEXPANSION
- @echo 请输入你需要去掉的文件名中的关键词并回车
- set /p var=
- for %%a in (*.mp3 *.wmv *.wma *.rm* *.mp4 *.flv *.avi) do (
- set name=%%~na
- set name2=%%~xa
- for %%j in (!var!) do set name=!name:%%j=!
- call ren "%%a" "!name!!name2!"
- )
- cls
- echo.
- echo.
- echo.
- echo.
- @echo 已经完成 请核对有什么还需要去掉 可以输入再来一次
- echo.
- goto begin
-
- :wen
- cls
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir/b/s/a-d *.mp3 *.wmv *.wma *.rm* *.mp4 *.flv *.avi') do (
- set "str=%%~nxi"
- for /f "delims=" %%j in ("%%~dpi.") do (
- set "str=!str:%%~nj-=!"
- ren "%%i" "%%~nj-!str!"
- )
- )
- echo.
- echo.
- echo.
- echo.
- @echo 已 经 改 名 了,请 核 对 退 出
- echo.
- goto begin
复制代码
作者: terse 时间: 2014-7-2 10:35
- @echo off
- for /f "delims=" %%i in ('dir /b/a-d *---*.mp3') do (
- for /f "delims=-" %%j in ("%%i") do ren "%%i" "%%j.mp3"
- )
- pause
复制代码
作者: DDDYJQ1 时间: 2014-7-2 19:29
谢谢各位,当真好用极了
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |