我目前正在使用 AutoHotKey 和 7zip 编写一个程序,以自动将 Unity 项目保存/加载到 NAS 上的压缩文件中(因为 Unity 不支持将项目保存在网络位置),我想显示一个进度条。
我找到了一个如何读取实时命令行输出的例子:
RunWaitOne(command) {
shell := ComObject("WScript.Shell")
exec := shell.Exec(A_ComSpec " /C " command)
while(!exec.StdOut.AtEndOfStream) {
OutputDebug(exec.StdOut.ReadLine())
}
}
但这是输出所有命令,除了 7zip 显示进度的部分,我认为这与它自己重写有关并且永远不会换行 idk。所以我更深入地研究了它,我一直在努力寻找任何东西,但后来我发现有一种方法可以通过 ahk 中的 ComObject 使用 c# dll,我还找到了一个名为 SevenZipSharp 的 c# 包,它有一种方法可以查看提取/压缩的进度,但它没有必要的 ProgId 东西,我没有使用 C# 和 DLL 的经验,我不确定从这里去哪里。如果有人有任何想法那就太好了。