找回密码
 立即注册
查看: 2947|回复: 1

分享个 字幕自修改脚本

  • TA的每日心情
    开心
    2022-3-25 16:10
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    1

    主题

    10

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2341
    chu-ni-byo 发表于 2015-9-27 18:17:14 | 显示全部楼层 |阅读模式
    '保存为.vbs
    '字幕文件自动更名
    '注:目录下不能有其他.mkv文件  
    '字幕文件和视频文件放在同意目录下
    dim ass_chs_num,ass_cht_num
    dim shuan_ass
    shuan_ass="F"
    dim lovelive            
    dim ass_file_num,mkv_file_num
    dim ad
    dim ass(1000),mkv(1000),ass_chs(1000),ass_cht(1000)
    ass_file_num=0
    mkv_file_num=0
    Set fso = CreateObject("Scripting.FileSystemObject")
    lovelive=inputbox("设置文件夹路径",,"LL大法")
    if lovelive=Flase or lovelive="LL大法" then
            wscript.quit
    end if
    If not FSO.FolderExists(lovelive) Then
            msgbox "文件夹不存在"
            wscript.quit
    end if
    Set Folder = FSO.GetFolder(lovelive)
    Set Files = Folder.Files
    ad=len(Folder)+1


    For Each F In Files
            if right(F,3)="ass" then
                    ass(ass_file_num)=F
                    ass_file_num=ass_file_num+1   
            else if right(F,3)="mkv" then
                    mkv(mkv_file_num)=F
                    mkv_file_num=mkv_file_num+1      '20
            end if
            end if
    Next
    if ass_file_num=0 or mkv_file_num=0 then
            msgbox ("无字幕文件或无视频文件")
            wscript.quit
    else
            mkv_file_num=mkv_file_num-1
            ass_file_num=ass_file_num-1
            call k_on
    end if

    sub k_on()
    'mkv文件名提取
    dim slong
    dim nmkv
    for i=0 to mkv_file_num
            nmkv=right(mkv(i),len(mkv(i))-ad)
            slong=len(nmkv)-4
            nmkv=left(nmkv,slong)
            mkv(i)=nmkv
    next


    ass_chs_num=0
    ass_cht_num=0                            '
    for i=0 to ass_file_num   '双字幕相关
            if right(ass(i),6)="tc.ass" then
                    ass_chs(ass_chs_num)=ass(i)
                    ass_chs_num=ass_chs_num+1
                    shuan_ass="true"
            else if right(ass(i),6)="sc.ass" then
                    ass_cht(ass_cht_num)=ass(i)
                    ass_cht_num=ass_cht_num+1
            end if
            end if
    next
    ass_chs_num=ass_chs_num-1
    ass_cht_num=ass_cht_num-1
    end sub

    if mkv_file_num=ass_file_num or mkv_file_num=ass_chs_num then
            call rename_
    else
    '        msgbox mkv_file_num
    '        msgbox ass_chs_num
    '        msgbox ass_file_num
            msgbox ("文件数量不匹配")
    end if
    sub rename_()
            if shuan_ass="true" then
                    for i=0 to ass_chs_num
                            set filep=fso.getfile(ass_chs(i))
                            filep.name=mkv(i)+".tc.ass"
                    next
                    for i=0 to ass_cht_num
                            set filep=fso.getfile(ass_cht(i))
                            filep.name=mkv(i)+".sc.ass"
                    next
            else
                    for i=0 to ass_file_num
                            set filep=fso.getfile(ass(i))
                            filep.name=mkv(i)+".ass"
                    next
            end if
    end sub

    评分

    参与人数 1活跃度 +100 收起 理由
    海洋 + 100

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2015-9-1 19:17
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    6

    主题

    105

    回帖

    89

    VC币

    版主

    Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

    积分
    3856
    2333 发表于 2015-9-29 11:05:24 | 显示全部楼层
    顶一个。。。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表