使用AppleScript在cURL中引用路径形式的问题

时间:2018-05-22 16:35:17

标签: curl applescript

这有效:

do shell script "cURL -f http://mydomain/myfile.txt -o ~/Library/'Group Containers'/UBF8T346G9.Office/myFile.txt"

但扩展目标路径以包含第二个带引号的文件夹失败:

do shell script "cURL -f http://mydomain/myfile.txt -o ~/Library/'Group Containers'/UBF8T346G9.Office/'User Content'/myFile.txt"

提出错误:

警告:无法创建文件/ Users / [username] / Library / Group

在这两种情况下,在单引号中包装完整路径也会在路径的相同“组”部分失败,例如:

do shell script "cURL -f http://mydomain/myfile.txt -o '~/Library/Group Containers/UBF8T346G9.Office/myFile.txt'"

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您可以简单地使用反斜杠来转义路径中的空格。例如,

do shell script "cURL -f http://mydomain/myfile.txt -o ~/Library/Group\\ Containers/UBF8T346G9.Office/User\\ Content.localized/Chart\\ Templates.localized/myFile.txt"

您还可以使用命令quoted form of the POSIX path of theInput来正确转义变量theInput中给出的路径。有关详细信息,请参阅Apple Technical Note TN2065的“处理文件”部分do shell script in AppleScript

答案 1 :(得分:1)

我发现解决方案是使用第二个文件夹的正确名称! 这显示为"用户内容"在Finder中,但在使用右键单击/信息进行检查时,实际上是" User Content.localized"。所以这有效:

do shell script "cURL -f http://mydomain/myfile.txt -o ~/Library/'Group Containers'/UBF8T346G9.Office/'User Content.localized'/myFile.txt"

这样做:

do shell script "cURL -f http://mydomain/myfile.txt -o ~/'Library/Group Containers/UBF8T346G9.Office/User Content.localized/myFile.txt'"