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

[文件操作] [已解决]批处理怎样把当前目录下文件名包含.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
1

评分人数

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

这种事情,我也常做
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. }
复制代码

TOP


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

TOP

回复 3# 1139054012

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

TOP

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

回复 2# aloha20200628


   
请问怎么报错了,第1次运行只创建了文件夹,没移动重命名文件,第2次运行连文件夹都不创建

TOP

本帖最后由 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
复制代码
1

评分人数

TOP

返回列表