gpt4 book ai didi

windows - 如何在 TCL 8.0 版中使用 "&"命令使 proc 或 exec 命令在后台运行,即在 Windows 7 上并行运行?

转载 作者:行者123 更新时间:2023-12-04 23:05:04 26 4
gpt4 key购买 nike

我正在做一个项目,我正在使用 FFMPEG捕捉视频。 FFMPEG命令是:

ffmpeg -f dshow  -t 00:00:10 -i "video=Integrated Webcam" -b 5000k -s 1280x720 c:/test/sample.avi

链接: https://www.tcl.tk/man/tcl8.5/tutorial/Tcl26.html使用命令:
exec myprog &

在这里他们没有指定 myprog 是什么。 .

链接: Running shell commands in background, in a tcl proc使用命令:
 eval exec [linsert $args 0 exec] >> $tempFile &

这里的命令不被接受为 evalexec是一个接一个,所以需要 exec作为变量。

帮助我,使用写入权限命令,该命令可用于在后台捕获我的视频 TCL version 8.0Windows 7 .

最佳答案

这条线的问题:

eval exec [linsert $args 0 exec] >> $tempFile &

是多重的。首先,你有一个双 exec (不太可能是你想要的!)。其次,尽管在文件名中经常有空格的平台上运行,但最后有一 block 没有受到列表保护,这使得文件名有点像等待爆炸的定时炸弹(尽管我认为它不是在 Windows 7 上和在旧版本上一样糟糕,常见的可写位置在文件名中有空格)。

现在,如果您使用 支持的 Tcl 版本 那么我们建议将其写为:
exec {*}$args >> $tempFile &

(事实上​​,这类事情是 {*} 语法的关键用例之一。)

但是,您使用的是旧版本,因此我们必须以另一种方式做事。它仍然有助于我们获得上述内容,因为它指导我们需要在整个列表中插入非列表参数的位置:
eval [linsert [linsert $args 0 exec] end >> $tempFile &]

是的,这很难阅读并且容易出错。你为什么认为我们 从字面上改变了基础语言投入一些东西来解决这个问题? (几乎没有人再直接使用 eval,这大大降低了大多数人代码中的缺陷率。)

关于windows - 如何在 TCL 8.0 版中使用 "&"命令使 proc 或 exec 命令在后台运行,即在 Windows 7 上并行运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47321957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com