【发布时间】:2015-12-26 16:03:06
【问题描述】:
所以最近我在创建 .srt 字幕方面寻求帮助。 Here is the link. 我得到了帮助,一切正常,直到文件夹中的视频文件的名称中有 unicode 符号。如果是这样,则会出现 VBScript 错误。问题是如何使此代码与 Unicode 符号一起正常工作。 代码如下:
@echo off&cls
::The Path of your Videos files
set "$VideoPath=C:\FolderwithVideos"
::If you want your Code in this BAT remove the REMs Below :
rem dir "%$VideoPath%" /O:S /b /-p /o:gn > "C:\result.txt"
rem call replacer.bat result.txt ".mp4" ""
setlocal enabledelayedexpansion
set /a $Count=1
set "$Timer=00:00:00"
(for /f "delims=" %%a in (result.txt) do (
call:getVideolength "%%a.mp4"
for /f "delims=" %%x in ('cscript //nologo getvideolength.vbs') do (
call:SumTime !$Timer! %%x
for /f "delims=" %%y in ('cscript //nologo SumTime.vbs') do set "$NewTimer=%%y"
echo !$Count!
echo !$Timer!,000 --^> !$NewTimer!,000
echo %%a
Set $Timer=!$NewTimer!
)
set /a $Count+=1
echo.
))>Output.srt
echo Done !!!
type Output.srt
pause
exit/b
:GetVideoLength
(echo dim objShell
echo dim objFolder
echo dim objFolderItem
echo set objShell = CreateObject("shell.application"^)
echo set objFolder = objShell.NameSpace("%$videoPath%"^)
echo set objFolderItem = objFolder.ParseName(%1^)
echo dim objInfo
echo objInfo = objFolder.GetDetailsOf(objFolderItem, 27^)
echo wscript.echo objinfo)>GetVideoLength.vbs
exit/b
:SumTime
echo wscript.echo FormatDateTime(CDate("%1"^) + CDate("%2"^),3^) >SumTime.vbs
exit/b
【问题讨论】:
-
这里使用批处理文件有什么问题?为什么不只使用vbscript,有什么原因吗?
-
不,完全没有理由。我认为这会更容易,因为这对我来说最熟悉。我个人根本不会编码,只是有一些表面知识。如果有其他方法可以实现我的目标,如果您能提供帮助,我将不胜感激。
标签: batch-file unicode vbscript subtitle srt