Board logo

标题: [文件操作] [已解决]批处理怎样把当前目录下文件名包含.sc或.tc分别移动到简体和繁体文件夹下? [打印本页]

作者: 1139054012    时间: 2024-6-10 17:51     标题: [已解决]批处理怎样把当前目录下文件名包含.sc或.tc分别移动到简体和繁体文件夹下?

目录下有
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [01][Ma10p_1080p][x265_flac_aac].sc.ass
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [01][Ma10p_1080p][x265_flac_aac].tc.ass
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [02][Ma10p_1080p][x265_flac_aac].sc.ass
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [02][Ma10p_1080p][x265_flac_aac].tc.ass
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [03][Ma10p_1080p][x265_flac_aac].sc.ass
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [03][Ma10p_1080p][x265_flac_aac].tc.ass
......


无论后缀是ass还是ssa,srt
只要后缀前面有.tc,新建文件夹繁体,把带tc文件移动到这个文件夹,并把.tc删除
「繁体」文件夹下
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [01][Ma10p_1080p][x265_flac_aac].tc.ass
重命名为
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [01][Ma10p_1080p][x265_flac_aac].ass

只要后缀前面有.sc,新建文件夹简体,把带sc文件移动到这个文件夹,并把.sc删除
「简体」文件夹下
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [01][Ma10p_1080p][x265_flac_aac].sc.ass
重命名为
[VCB-Studio] Kono Subarashii Sekai ni Shukufuku wo! [01][Ma10p_1080p][x265_flac_aac].ass
作者: aloha20200628    时间: 2024-6-10 18:48

本帖最后由 aloha20200628 于 2024-6-10 19:25 编辑

回复 1# 1139054012

以下代码存为 test.bat 置于字幕文件目录(*.ass *.ssa *.srt)下运行...
  1. @echo off &set "tc=「繁体」" &set "sc=「简体」"
  2. (md %tc% & md %sc%) 2>nul
  3. for /f "delims=" %%F in (' dir /b/a-d "*.tc.???" "*.sc.???" ') do (
  4. set "_s=%%F" &set "s=%%~nF" & setlocal enabledelayedexpansion
  5. if /i "!s:~-2!"=="tc" (move /y "!_s!" "!tc!\!s:~0,-2!%%~xF") else (
  6. move /y "!_s!" "!sc!\!s:~0,-2!%%~xF"
  7. )
  8. endlocal
  9. )
  10. pause&exit/b
复制代码

作者: 1139054012    时间: 2024-6-10 18:57

本帖最后由 1139054012 于 2024-6-10 19:07 编辑

回复 2# aloha20200628


   
请问怎么报错了,第1次运行只创建了文件夹,没移动重命名文件,第2次运行连文件夹都不创建
作者: aloha20200628    时间: 2024-6-10 19:12

回复 3# 1139054012

碰巧字幕文件名中有!字符
已订正2楼代码,再试试吧...

作者: aloha20200628    时间: 2024-6-10 19:43


来个现场备注》包含!等字符的路径文件名必须在开启延迟变量前把包含特殊字符的相应字段(%%F 或 %%~nF)取给相应的%var%变量,以便在开启延迟变量后能保全%var%中的特殊字符...

作者: newswan    时间: 2024-6-10 23:14

这种事情,我也常做
powershell
  1. ( Get-ChildItem ) -match "[.]tc[.](ass|ssa|srt)$" | ForEach-Object {
  2. Move-Item -LiteralPath $_ -Destination ( '.\tc\' +( $_.Name -replace "[.]tc[.](ass|ssa|srt)$",".`$1") )
  3. }
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2