命令不会在SWIFT中返回结果

时间:2015-06-10 20:49:40

标签: shell redirect terminal command nstask

我试图运行命令行工具并获取结果。 我在终端检查了它:

/usr/bin/exiftool -filename -directory -createdate -model "/Users/dirk/Desktop\" -t -S -q -r -f >"RenamerOutfile0.txt"

运行正常并将结果传递到文件中。 使用SWIFT我尝试了这个:

let task = NSTask()
task.launchPath = "/usr/bin/exiftool"
task.arguments = ["-filename -directory -createdate -model \"/Users/dirk/Desktop\" -t -S -q -r -f"]
let pipe = NSPipe()
task.standardOutput = pipe
task.launch()

let data = pipe.fileHandleForReading.readDataToEndOfFile()

不幸的是没有任何反应。数据被分配0字节 - 没有结果。 如果我将重定向插入文件,则不会创建文件。 不知道从终端调用工具的不同之处是什么呢?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

let x = system("/usr/bin/exiftool -filename -directory -createdate -model \"/Users/dirk/Desktop\" -t -S -q -r -f >\"/var/tmp/RenamerOutfile0.txt\"")

这很好用。也许是因为我为输出文件添加了路径/ var / tmp?没关系! : - )