如果我尝试编译,由于"\;"
我会收到“invalid escape sequence in literal”错误,但是如果我尝试使用"\\;"
或"\u{005C};"
我收到错误find: -exec: no terminating ";" or "+"
好像我没有传递反斜杠字符
@IBAction func button1(_ sender: NSButton) {
let path = "/usr/bin/find"
let arguments = ["folder_path","-name","'*.docx'","-print","-exec","zip","'{}'.zip","'{}'","\;"]
sender.isEnabled = false
let task = Process.launchedProcess(launchPath :path, arguments: arguments)
task.waitUntilExit()
sender.isEnabled = true
}
最佳答案
正如罗伯所说(正如我在评论中温和地建议的那样),你不是一个空壳,所以你不需要任何特别的引用或反斜杠。
我不可能在我的机器上执行zip命令,所以我进行了如下测试:
let task = Process()
task.launchPath = "/usr/bin/find"
task.arguments =
["/Users/matt/Desktop", "-name", "*.mp3", "-exec", "echo", "{}", ";"]
配置了适当的管道后,我运行任务并从管道中读取数据,果然,在我的桌面上找到了一个mp3文件。注意,没有参数是单引号或反斜杠。
关于swift - 文字中的Swift无效转义序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41538445/