用于在批处理脚本中编辑/设置变量/参数的GUI?

时间:2017-12-01 19:14:18

标签: windows user-interface batch-file video-encoding

大约2年前,我创建了一个批处理脚本来使用mediainfo扫描视频文件,返回一个值,将值与设置值/整数进行比较,然后在比较通过时运行handbrake。否则,跳过该文件。

我想通过添加GUI使脚本更具可定制性。所有这些GUI必须做的是以下事情:

  • 设置&出文件夹路径。
  • 下拉菜单选择mediainfo参数。
  • 下拉菜单设置比较运算符。
  • 设置要与mediainfo返回值进行比较的值/整数的文本框。
  • 用于设置手刹的自定义编码设置的文本框。
  • 最后,也许是一个cmd查看器,用于观看脚本运行文件并对其进行编码。

这是整个批处理脚本文件:

@echo off
set mediainfo="%~dp0MediaInfo.exe"
set result="%~dp0bitrate.txt"
set handbrake="%~dp0HandBrakeCLI.exe"
SETLOCAL ENABLEDELAYEDEXPANSION
Set /P a=Enter source path:
set a1=%a: =_%
set src=%a1:"=%
if not %src:~-1%==\ set src=%src%\
Set /P b=Enter destination for converted files:
set b1=%b: =_%
set dest=%b1:"=%
if not %dest:~-1%==\ set dest=%dest%\
for /R %a% %%j in (*.*) do (
    Echo Filepath is: %%j
    %mediainfo% --Inform=General;%%BitRate%% "%%j" > %result%
    set /P bitrate=<%result%
    del %result%
    echo Bit Rate is: !bitrate!
    if !bitrate! gtr 4500000 (
    set fpath=%%~dpj
    set fpath=!fpath: =_!
    set trg=!fpath:%src%=%dest%!
    if not !trg:~-1!==\ (set trg="!trg:_= !\") else (set trg="!trg:_= !")
    set fnl="!trg:"=!%%~nj.mkv"
    if not exist !trg! mkdir !trg!
    %handbrake% -i "%%j" -o !fnl! -f mkv -e x264 -q 20 --vfr -a 1,1 -E av_aac,ac3 -B 192 -x level=4.1:vbv-bufsize=7000:vbv-maxrate=4500) else (echo No need to transcode.)
)
cmd /k

所以我的问题是,如何制作一个可以轻松将变量传递给批处理文件的GUI。我正在研究HTA,但这似乎主要是基于VBscript / javascript,不确定它是否适用于批处理。此外,我最近遇到了AutoIt,但不确定它是否会做我需要的。

只是想指向正确的方向。 谢谢。 github.com/j0ckinjz/Batch-Convert-Script

编辑:格式化

0 个答案:

没有答案