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

[文件操作] [已解决]批处理如何高效重命名复杂的电视剧文件?答案2楼

下载了一部83年的电视剧《射雕英雄传》,包含了三部,都在一个文件夹里:

第一部分:
[FK影视出品]射雕英雄传之东邪西毒.1983.EP01.双语字幕.DVDRIP.mkv
……
[FK影视出品]射雕英雄传之东邪西毒.1983.EP20.双语字幕.DVDRIP.mkv
第二部分:
[FK
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. for /f "delims=" %%a in ('dir/b [FK影视出品]*.mkv') do (
  3.   for /f "tokens=2,5 delims=之.P" %%i in ("%%a") do ren "%%a" "%%i%%j.mkv"
  4. )
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1
看得多说得多,远比不上写得多。

TOP

回复 2# weichenxiehou


    这个能把一个文件夹中三个不同名字的电视剧文件都改过来吗?

TOP

回复 3# hacker85
原理上是可以,因为没有你的测试环境,所以不能测试,建议你先做好备份,再进行测试。
看得多说得多,远比不上写得多。

TOP

我不太懂tokens=2,5 delims=之.P是什么意思?

这里的2,5代表得是第二个和第五个?那么是什么呢?

delims=之.P  这意思是用这三个字符来分隔,还是别的?

我的批水平还不是很高

你的代码是成功的

TOP

我不太懂tokens=2,5 delims=之.P是什么意思?

这里的2,5代表得是第二个和第五个?那么是什么呢?

delims=之.P  这意思是用这三个字符来分隔,还是别的?

我的批水平还不是很高

你的代码是成功的

TOP

回复 6# hacker85
你用“之.P”这三个字符把每个文件名分成N列,会发现你要的东西就固定是第2和5列。
看得多说得多,远比不上写得多。

TOP

回复 7# weichenxiehou


    如何能看到“之.P”所分割后的结果?

我想这三个字符应该是把整个名字分割成了4部分吧:一 之 二 . 三 P 四

TOP

回复 8# hacker85
详情请参阅论坛加精高亮贴--namejm“批处理从入门到精通”,这些都是很基础的东西。
看得多说得多,远比不上写得多。

TOP

如果lz能把目录的文件名字列出来的话,我们能写出更准确更高效的代码。
1

评分人数

    • CrLf: 乐于助人PB + 3

TOP

回复 10# qq2501


    我在发帖的时候已经把整个文件名的情况都描述在一楼了,但是我今天再来看的时候,貌似被管理员给重新编辑了,所以你看到的只是有一个红色字体的

文件名,其实另外两个的情况只是红色字体的部分内容不一样,但都是四个字,你知道的。呵呵

TOP

回复 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

TOP

回复 12# hacker85


用记事本打开你的bat文件,文件,另存为,选择ANSI编码。
1

评分人数

    • CrLf: 乐于助人PB + 3

TOP

回复 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语句中的那个"英"用得不对,请指教,在线等。

TOP

回复 14# hacker85
  1. @echo off
  2. for /f %%i in ('dir /b [66*.rmvb') do (
  3.     for /f "tokens=2 delims=英,中" %%a in ("%%i") do (
  4.         ren "%%i" "英%%a.rmvb"
  5.     )
  6. )
复制代码

TOP

返回列表