allor
(allor)
1
看在某只老鼠卖萌的份上,忍着对AHK语法的厌烦写了这么个小工具
使用:
把脚本和ffmpeg.exe放在一起→运行脚本→选择需要合并的文件→完工
AHK脚本:
MsgBox, 64, FFmpeg视频合并工具, 使用须知:`n 视频将按照文件名顺序合并`n`n点击确定选择需要合并的文件
FileSelectFile, files, M, , 请选择需要合并的视频文件,Video(*.avi;*.mp4;*.mkv;*.flv)
If files =
{
MsgBox, 16, 错误提示, 没选择文件/所选超出限制
return
}
lst := FileOpen("list.txt", "w")
If !IsObject(lst)
{
MsgBox, 16, 错误提示, 创建视频列表失败
return
}
Loop, parse, files, `n
{
If A_Index = 1
{
dir := A_LoopField
continue
}
str = file '%dir%\%A_LoopField%'`r`n
lst.Write(str)
}
lst.Close
Sleep, 1000
RunWait %comspec% /k "ffmpeg -f concat -safe 0 -i list.txt -c copy "%dir%\output.mp4""
FileDelete, list.txt
Exit
2 个赞
Qingwa
(青小蛙)
2
鉴于你们都喜欢 AutoHotkey,新建了 AutoHotkey 分类。
allor
(allor)
4
并不喜欢
语法不够规范,缺乏一致性。
导致每次写AHK都会产生各种不爽。
allor
(allor)
6
灵活性毁于见鬼的文档,而且规范和灵活并不矛盾。
比如说AHK的 :=
,大致等同于其他语言的 =
,这个用起来没问题。
问题是AHK还保留了和其他语言语法不同的 =
,学过其他语言的一不小心就手滑……
还不如将 :=
和 =
倒过来,让 =
和其他语言保持一致。
话说v2支持同时选择文件和文件夹了么?
都有 FileSelectFile
和 FileSelectFolder
了,居然没有 FileSelect
……
无法理解……
allor
(allor)
8
thx,之前在官网首页没见到v2的入口。
仅仅是重命名没意义啊,FileSelectFile本来就支持多选,
然而返回的文件列表中并不包含选中的文件夹
skystar
(skystar)
5
我看了官网现在做的v2,已经在改进这些问题了。不过重点这是一种解释性语言,所以天然具有灵活性,但你写的时候可以自己实行一套规范,使自己的代码一致。
skystar
(skystar)
7
v1.1 to v2.0改进文档第一句就是“Removed literal assignments: var = value”
后面还有一段:Renamed commands:
FileSelectFile → FileSelect
FileSelectFolder → DirSelect
现在还在alpha阶段,对于改进和功能还有很多讨论,最终会改成什么样还不清楚,但一定是越来越好的。目前的改变可以看这个网址,https://autohotkey.com/v2/v2-changes.htm
skystar
(skystar)
9
我猜这样改过以后就会返回文件夹了,之前的命名和返回列表确实很让人困惑