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

[文件操作] [已解决]批处理根据字幕文件前的[]创建子目录,把后缀符合条件的移动到二级目录?

前提,文件后缀不一定是*.ass,有可能*.ssa,有可能*.srt,三种条件,这里只示范*.ass后缀

文件名称
[KitaujiSub] Make Heroine ga Oosugiru! [01][WebRip][HEVC_AAC][CHS_JP&CHT_JP]_字幕01.CHI.ass
[KitaujiSub] Make Heroine ga Oosugiru! [01][WebRip][HEVC_AAC][CHS_JP&CHT_JP]_字幕02.CHI.ass
[KitaujiSub] Make Heroine ga Oosugiru! [02][WebRip][HEVC_AAC][CHS_JP&CHT_JP]_字幕01.CHI.ass
[KitaujiSub] Make Heroine ga Oosugiru! [02][WebRip][HEVC_AAC][CHS_JP&CHT_JP]_字幕02.CHI.ass
[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 01 [WebRip 1080p HEVC-10bit AAC ASSx2]_字幕01.CHI.ass
[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 01 [WebRip 1080p HEVC-10bit AAC ASSx2]_字幕02.CHI.ass
[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 02 [WebRip 1080p HEVC-10bit AAC ASSx2]_字幕01.CHI.ass
[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 02 [WebRip 1080p HEVC-10bit AAC ASSx2]_字幕02.CHI.ass

文件列表demo下载


如果以上文件名如果包含_字幕01.CHI,_字幕02.CHI的
新建文件夹,文件名第一个[]文件夹
KitaujiSub
Nekomoe kissaten&LoliHouse

里面再新建文件夹,名为【简体】
把包含_字幕01.CHI的移动到这个文件夹

里面再新建文件夹,名为【繁体】
把包含_字幕02CHI的移动到这个文件夹,并重命名删除

得到结果
KitaujiSub\简体\[KitaujiSub] Make Heroine ga Oosugiru! [01][WebRip][HEVC_AAC][CHS_JP&CHT_JP]_字幕01.CHI.ass
KitaujiSub\简体\[KitaujiSub] Make Heroine ga Oosugiru! [02][WebRip][HEVC_AAC][CHS_JP&CHT_JP]_字幕01.CHI.ass

KitaujiSub\繁体\[KitaujiSub] Make Heroine ga Oosugiru! [01][WebRip][HEVC_AAC][CHS_JP&CHT_JP]_字幕02.CHI.ass
KitaujiSub\繁体\[KitaujiSub] Make Heroine ga Oosugiru! [02][WebRip][HEVC_AAC][CHS_JP&CHT_JP]_字幕02.CHI.ass

Nekomoe kissaten&LoliHouse\简体\[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 01 [WebRip 1080p HEVC-10bit AAC ASSx2]_字幕01.CHI.ass
Nekomoe kissaten&LoliHouse\简体\[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 02 [WebRip 1080p HEVC-10bit AAC ASSx2]_字幕01.CHI.ass

Nekomoe kissaten&LoliHouse\繁体\[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 01 [WebRip 1080p HEVC-10bit AAC ASSx2]_字幕02.CHI.ass
Nekomoe kissaten&LoliHouse\繁体\[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 02 [WebRip 1080p HEVC-10bit AAC ASSx2]_字幕02.CHI.ass


移动到对应文件夹后,把所有包括_字幕01.CHI和_字幕02.CHI都删除

最终结果是
得到结果
KitaujiSub\简体\[KitaujiSub] Make Heroine ga Oosugiru! [01][WebRip][HEVC_AAC][CHS_JP&CHT_JP].ass
KitaujiSub\简体\[KitaujiSub] Make Heroine ga Oosugiru! [02][WebRip][HEVC_AAC][CHS_JP&CHT_JP].ass

KitaujiSub\繁体\[KitaujiSub] Make Heroine ga Oosugiru! [01][WebRip][HEVC_AAC][CHS_JP&CHT_JP].ass
KitaujiSub\繁体\[KitaujiSub] Make Heroine ga Oosugiru! [02][WebRip][HEVC_AAC][CHS_JP&CHT_JP].ass

Nekomoe kissaten&LoliHouse\简体\[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 01 [WebRip 1080p HEVC-10bit AAC ASSx2].ass
Nekomoe kissaten&LoliHouse\简体\[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 02 [WebRip 1080p HEVC-10bit AAC ASSx2 .ass

Nekomoe kissaten&LoliHouse\繁体\[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 01 [WebRip 1080p HEVC-10bit AAC ASSx2].ass
Nekomoe kissaten&LoliHouse\繁体\[Nekomoe kissaten&LoliHouse] Make Heroine ga Oosugiru! - 02 [WebRip 1080p HEVC-10bit AAC ASSx2].ass
1

评分人数

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

本帖最后由 qixiaobin0715 于 2024-10-8 12:43 编辑

好像用不着那么多for循环,一个就够了,经测试没发现问题:
  1. @echo off
  2. for /f "tokens=1* delims=[]" %%i in ('dir /b /a-d *字幕0*.ass *字幕0*.ssa *字幕0*.srt') do (
  3.     set "str=%%j"
  4.     set "str1=%%i"
  5.     setlocal enabledelayedexpansion
  6.     if not "!str1!"=="!str2!" (md "!str1!\简体" "!str1!\繁体")
  7.     if "!str!"=="!str:_字幕01.CHI=!" (
  8.         move "[!str1!]!str!" "!str1!\繁体\[!str1!]!str:_字幕02.CHI=!">nul
  9.     ) else (
  10.         move "[!str1!]!str!" "!str1!\简体\[!str1!]!str:_字幕01.CHI=!">nul
  11.     )
  12.     endlocal
  13.     set "str2=%%i"
  14. )
  15. pause
复制代码

TOP

  1. @echo off
  2. rem 保存为ansi编码
  3. cd /d "%~dp0"
  4. for /f "delims=" %%i in ('dir /b /a-d *.ass *.ssa *.srt') do (
  5. set file=%%i
  6. for /f "tokens=1 delims=[]" %%a in ("%%~ni") do (
  7. set folder=%%a
  8. setlocal enabledelayedexpansion
  9. if "!file:_字幕01.chi=!" neq "!file!" (
  10. md "!folder!\简体" 2>nul
  11. move "!file!" "!folder!\简体\!file:_字幕01.chi=!"
  12. ) else if "!file:_字幕02.chi=!" neq "!file!" (
  13. md "!folder!\繁体" 2>nul
  14. move "!file!" "!folder!\繁体\!file:_字幕02.chi=!"
  15. )
  16. endlocal
  17. )
  18. )
  19. pause
复制代码
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 1# 1139054012
  1. @echo off &setlocal &for /f "delims=" %%F in ('dir /b/a-d *.ass *.srt *.ssa') do (
  2.    for /f "tokens=1 delims=[]" %%a in ("%%F") do for /f "tokens=1-2 delims=字幕" %%x in ("%%~nF") do (
  3.       md "%%a" &set "F=%%F" &set "a=%%a" &set "x=%%x"
  4.       setlocal enabledelayedexpansion &set "x=!x:~,-1!"
  5.       if /i "01.chi"=="%%y" md "!a!\简体" &move "!F!" "!a!\简体\!x!%%~xF"
  6.       if /i "02.chi"=="%%y" md "!a!\繁体" &move "!F!" "!a!\繁体\!x!%%~xF"
  7.       endlocal
  8. )) 2>nul
  9. endlocal&pause&exit/b
复制代码
1

评分人数

TOP

回复 2# ppll2030


    谢谢回复,可以移动指定文件夹,请问可以最后删除下文件名后的_字幕01.CHI和_字幕02.CHI吗?

TOP

本帖最后由 ppll2030 于 2024-10-3 19:29 编辑

更新,添加移动后修改文件名
把代码保存ANSI编码为bat文件,跟字幕文件放在一起,运行即可。
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /a-d "*_字幕01*"') do (
  3.     set "str=%%i"
  4.     setlocal enabledelayedexpansion
  5. for /f "delims=[]" %%a in ("!str!") do (
  6. md "%%~nxa\简体" 2>nul
  7. move "!str!" "%%~nxa\简体\!str:_字幕01.CHI=!"
  8. )
  9. endlocal
  10. )
  11. for /f "delims=" %%i in ('dir /b /a-d "*_字幕02*"') do (
  12.     set "str=%%i"
  13.     setlocal enabledelayedexpansion
  14. for /f "delims=[]" %%a in ("!str!") do (
  15. md "%%~nxa\繁体" 2>nul
  16. move "!str!" "%%~nxa\繁体\!str:_字幕02.CHI=!"
  17. )
  18. endlocal
  19. )
  20. pause
复制代码
1

评分人数

TOP

返回列表