task.arguments中的Swift参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了task.arguments中的Swift参数相关的知识,希望对你有一定的参考价值。

在Swift 4中,我尝试启动命令行来了解视频的帧速率。我使用mediainfo工具。

要执行的命令是(在终端中测试)

"/Users/Lorenzo/mediainfo  --Inform="Video;%FrameRate%" /Users/Lorenzo/Desktop/1.mov"

我为此目的的快速代码是:

        let taskfindfps = Process()

        taskfindfps.launchPath = "/Users/Lorenzo/mediainfo"
        taskfindfps.arguments = ["--Inform="Video;%FrameRate%"", myVideo]

        let pipefindfps = Pipe()
        taskfindfps.standardOutput = pipefindfps

但是第一个参数无效,我不知道为什么......我得到的结果就像没有可选参数的命令结果:

"/Users/Lorenzo/mediainfo /Users/Lorenzo/Desktop/1.mov"

“--Inform = ”视频中是否有问题;%FrameRate%“”?

答案

如果不完全了解Swift,我会尝试没有转义引号,引用用于例如命令行仅用于强制命令不处理半列作为命令行的某些内容(命令行在处理过程中删除它们.Indit.arguments是一个列表,语言应该正确处理自身要逃脱的字符,如果是转义引号(而不是像在命令行上那样处理它们)MediaInfo将无法理解该命令。

Jérôme,MediaInfo的开发者。

另一答案

你是对的,我有我的fps号码!随着代码:

taskfindfps.arguments = [ "--Inform=Video;%FrameRate%", myVideo]

谢谢您的帮助。感谢强大的MediaInfo工具。

以上是关于task.arguments中的Swift参数的主要内容,如果未能解决你的问题,请参考以下文章

作为参数的函数:swift3中的一元运算符

如何在 swift 的操场上修复“调用中的额外参数 'at'”

Swift 中的额外参数调用

swift2:调用中的额外参数“错误”

swift 3中的inout参数

Swift 中的可变参数方法