标题: [文件操作] [已解决]批处理如何高效重命名复杂的电视剧文件?答案2楼 [打印本页]
作者: hacker85 时间: 2011-12-19 21:10 标题: [已解决]批处理如何高效重命名复杂的电视剧文件?答案2楼
下载了一部83年的电视剧《射雕英雄传》,包含了三部,都在一个文件夹里:
第一部分:
[FK影视出品]射雕英雄传之东邪西毒.1983.EP01.双语字幕.DVDRIP.mkv
……
[FK影视出品]射雕英雄传之东邪西毒.1983.EP20.双语字幕.DVDRIP.mkv
第二部分:
[FK
作者: weichenxiehou 时间: 2011-12-19 21:33
- @echo off
- for /f "delims=" %%a in ('dir/b [FK影视出品]*.mkv') do (
- for /f "tokens=2,5 delims=之.P" %%i in ("%%a") do ren "%%a" "%%i%%j.mkv"
- )
复制代码
作者: hacker85 时间: 2011-12-19 21:49
回复 2# weichenxiehou
这个能把一个文件夹中三个不同名字的电视剧文件都改过来吗?
作者: weichenxiehou 时间: 2011-12-19 21:53
回复 3# hacker85
原理上是可以,因为没有你的测试环境,所以不能测试,建议你先做好备份,再进行测试。
作者: hacker85 时间: 2011-12-19 22:03
我不太懂tokens=2,5 delims=之.P是什么意思?
这里的2,5代表得是第二个和第五个?那么是什么呢?
delims=之.P 这意思是用这三个字符来分隔,还是别的?
我的批水平还不是很高
你的代码是成功的
作者: hacker85 时间: 2011-12-19 22:03
我不太懂tokens=2,5 delims=之.P是什么意思?
这里的2,5代表得是第二个和第五个?那么是什么呢?
delims=之.P 这意思是用这三个字符来分隔,还是别的?
我的批水平还不是很高
你的代码是成功的
作者: weichenxiehou 时间: 2011-12-19 22:07
回复 6# hacker85
你用“之.P”这三个字符把每个文件名分成N列,会发现你要的东西就固定是第2和5列。
作者: hacker85 时间: 2011-12-19 22:16
回复 7# weichenxiehou
如何能看到“之.P”所分割后的结果?
我想这三个字符应该是把整个名字分割成了4部分吧:一 之 二 . 三 P 四
作者: weichenxiehou 时间: 2011-12-19 22:37
回复 8# hacker85
详情请参阅论坛加精高亮贴--namejm“批处理从入门到精通”,这些都是很基础的东西。
作者: qq2501 时间: 2011-12-19 23:00
如果lz能把目录的文件名字列出来的话,我们能写出更准确更高效的代码。
作者: hacker85 时间: 2011-12-20 11:43
回复 10# qq2501
我在发帖的时候已经把整个文件名的情况都描述在一楼了,但是我今天再来看的时候,貌似被管理员给重新编辑了,所以你看到的只是有一个红色字体的
文件名,其实另外两个的情况只是红色字体的部分内容不一样,但都是四个字,你知道的。呵呵
作者: hacker85 时间: 2011-12-20 12:51
回复 9# weichenxiehou
我看了那篇教程,于是对用“之.P”所分割后的结果进行了单独的显示:
H:\vedio>锘緻echo off
'锘緻echo' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
H:\vedio>for /F "tokens=2,5 delims=涔?P" %i in (test.txt) do echo %i %j
H:\vedio>echo 01.双语字幕.DVDRI
01.双语字幕.DVDRI
H:\vedio>pause
请按任意键继续. . .
================为什么上方的内容是那个样子,还有乱码不说,还把代码也显示出来了??=======================
我的代码是:
@echo off
for /f "tokens=2,5 delims=之.P" %%i in (test.txt) do echo %%i %%j
pause
test.txt文件的内容是:
[FK影视出品]射雕英雄传之东邪西毒.1983.EP01.双语字幕.DVDRIP.mkv
作者: awk 时间: 2011-12-29 19:26
回复 12# hacker85
用记事本打开你的bat文件,文件,另存为,选择ANSI编码。
作者: hacker85 时间: 2011-12-29 21:41
回复 13# awk
请问对于“[66影视www.66ys.cn]超能英雄第三季01中英字幕1024x576版.rmvb”这样的文件,如果我用下面的代码想改成
“英雄第三季01.rmvb”的话,为什么不可以呢?
代码:
@echo off
for /f %%i in ('dir /b [66*.rmvb') do (
for /f "tokens=2 delims=英,中" %%a in (%%i) do ren "%%i" "英%%a.rmvb"
)
注:我觉得应该是我的ren语句中的那个"英"用得不对,请指教,在线等。
作者: awk 时间: 2011-12-29 23:04
回复 14# hacker85 - @echo off
- for /f %%i in ('dir /b [66*.rmvb') do (
- for /f "tokens=2 delims=英,中" %%a in ("%%i") do (
- ren "%%i" "英%%a.rmvb"
- )
- )
复制代码
作者: hacker85 时间: 2011-12-30 10:01
回复 15# awk
第二层for里的do语句后面必须要用那个括号吗? 2楼的代码没有这样的情况 直接跟了一个ren
作者: awk 时间: 2011-12-30 10:33
回复 16# hacker85
真正起作用的不是括号而是双引号
作者: hacker85 时间: 2011-12-30 10:34
回复 17# awk
3Q 了解了 竟然忘了加双引号给%%i,阿兮
作者: hacker85 时间: 2012-1-1 20:07
回复 17# awk
再问一个问题,直接在这里补充了:
英超能英雄第三季19中英字幕1024x576版.rmvb 英雄第三季19.rmvb
英超能英雄第四季HD中英字幕1024x576版01-02.rmvb 英雄第四季01-02.rmvb(整个文件里就这么一个是两集在一起的,如果实在难受,可以不管这个)
英超能英雄第四季HD中英字幕1024x576版03.rmvb 英雄第四季03.rmvb
英雄第四季1024x57614.rmvb 英雄第四季14.rmvb
这四种情况的文件如何更名为:英雄第X季XX.rmvb
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |