使用AppleScript在cURL中引用路径形式时遇到问题
这项工作:使用AppleScript在cURL中引用路径形式时遇到问题,curl,applescript,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.localized'/my
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.localized'/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'"
我做错了什么?您可以简单地使用反斜杠来转义路径中的空格。比如说,
do shell script "cURL -f http://mydomain/myfile.txt -o ~/Library/Group\\ Containers/UBF8T346G9.Office/User\\ Content.localized/Chart\\ Templates.localized/myFile.txt"
您还可以使用输入的POSIX路径的命令
引用形式
正确转义变量输入的路径
。有关更多详细信息,请参阅Apple技术说明TN2065的“处理文件”部分。您可以简单地使用反斜杠来转义路径中的空格。比如说,
do shell script "cURL -f http://mydomain/myfile.txt -o ~/Library/Group\\ Containers/UBF8T346G9.Office/User\\ Content.localized/Chart\\ Templates.localized/myFile.txt"
您还可以使用输入的POSIX路径的命令
引用形式
正确转义变量输入的路径
。有关更多详细信息,请参阅Apple技术说明TN2065的“处理文件”部分。我发现解决方案是为第二个文件夹使用正确的名称!
这在Finder中显示为“用户内容”,但当使用右键单击/Info进行检查时,实际上是“用户内容.本地化”。所以这是可行的:
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.localized'/myFile.txt"
这也是:
do shell script "cURL -f http://mydomain/myfile.txt -o ~/'Library/Group Containers/UBF8T346G9.Office/User Content.localized/myFile.txt'"
我发现解决方法是为第二个文件夹使用正确的名称! 这在Finder中显示为“用户内容”,但当使用右键单击/Info进行检查时,实际上是“用户内容.本地化”。所以这是可行的:
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.localized'/myFile.txt"
这也是:
do shell script "cURL -f http://mydomain/myfile.txt -o ~/'Library/Group Containers/UBF8T346G9.Office/User Content.localized/myFile.txt'"
我不知道是什么导致了这个问题,但是试着在开头引用整个路径,除了
~/
——如果没有引用,shell只会将它扩展到您的主目录。此外,请检查以确保单引号是纯ASCII单引号,而不是一些花哨的卷曲unicode引号。谢谢Gordon。我没有意识到关于~/的一点,我尝试不引用该部分(使用简单的ASCII单引号)当路径中有两个文件夹名,其中包含空格时,仍然会引发错误,尽管引用您描述的整个第一个路径示例可以解决此问题。或者:将路径完整地写出来,而不是使用~
,然后将整件事都放在引号中:“/Users/%you%/Library/Group Containers/UBF8T346G9.Office/User Content/myFile.txt”
;或者,按照Gordon的建议,但我会显式键入,将波浪线拉到引用路径之外,并将其余部分保留在引号中:~/“Library/Group Containers/UBF8T346G9.Office/User Content/myFile.txt”
ahhh。文件夹的“用户内容”在Finder中是这样显示的,但如果我右键单击并查看信息,它实际上是“用户内容。本地化”我不知道是什么导致了问题,但尝试在开头引用整个路径,除了~/
——如果没有引用,shell只会将其扩展到您的主目录。此外,请检查以确保单引号是纯ASCII单引号,而不是一些花哨的卷曲unicode引号。谢谢Gordon。我没有意识到关于~/的一点,我尝试不引用该部分(使用简单的ASCII单引号)当路径中有两个文件夹名,其中包含空格时,仍然会引发错误,尽管引用您描述的整个第一个路径示例可以解决此问题。或者:将路径完整地写出来,而不是使用~
,然后将整件事都放在引号中:“/Users/%you%/Library/Group Containers/UBF8T346G9.Office/User Content/myFile.txt”
;或者,按照Gordon的建议,但我会显式键入,将波浪线拉到引用路径之外,并将其余部分保留在引号中:~/“Library/Group Containers/UBF8T346G9.Office/User Content/myFile.txt”
ahhh。文件夹的“用户内容”在Finder中是这样显示的,但如果我右键单击并查看信息,它实际上是“用户内容。本地化”谢谢E.Harley。这是我在阅读Bash手册中有关引用和转义的部分后尝试的另一件事,但在脚本编辑器的第一个空格字符处出现语法错误:应为“”“但是发现了未知的标记。你可以通过复制/粘贴你的例子来确认。使用双黑斜杠在双引号字符串内转义。啊!谢谢你让我知道!谢谢你,哈利。这是我在阅读Bash手册中有关引用和转义的部分后尝试的另一件事,但在脚本编辑器的第一个空格字符处出现语法错误:应为“”“但是发现了未知的标记。你可以通过复制/粘贴你的例子来确认。使用双黑斜杠在双引号字符串内转义。啊!谢谢你让我知道!