Path 如何将POSIX路径中的变量与AppleScript一起使用?

Path 如何将POSIX路径中的变量与AppleScript一起使用?,path,applescript,finder,Path,Applescript,Finder,我尝试用变量替换POSIX路径中的一个部分已经有一段时间了,但没有成功。这是我正在尝试开发的脚本: tell application "Finder" duplicate POSIX file "/Users/**Variable**/Documents/img.jpg" to POSIX file "/Users/**Variable**/Desktop/" with replacing end tell 路径中的部分是我希望变量出现的地方。我怎样才能做到这一点?您可以使用符号和变量

我尝试用变量替换POSIX路径中的一个部分已经有一段时间了,但没有成功。这是我正在尝试开发的脚本:

tell application "Finder"
    duplicate POSIX file "/Users/**Variable**/Documents/img.jpg" to POSIX file "/Users/**Variable**/Desktop/" with replacing
end tell

路径中的部分是我希望变量出现的地方。我怎样才能做到这一点?

您可以使用符号和变量来打断字符串

另外,将posix路径转换为Mac标准冒号路径是一种很好的做法:在脚本查找器之前先转换路径。从10.9开始,Finder的复制函数在这些方面一直存在缺陷。 我已经发布了一些强制措施,这样你就可以看到发生了什么

-- define file and user names
set fileName to "img.jpg"
set user1 to "Mitc"
set user2 to "Mitc"

-- create posix path strings
set path1 to "/Users/" & user1 & "/Documents/" & fileName
set path2 to "/Users/" & user2 & "/Desktop/"

-- convert posix paths into colon paths
set ref1 to (POSIX file path1) as string
set ref2 to (POSIX file path2) as string

-- display dialog ref1 & return & ref2 -- to test
tell application "Finder" to duplicate alias ref1 to alias ref2 with replacing
您必须使用“&命令脚本停止读取目录并添加变量,结果如下:

tell application "Finder"
     duplicate POSIX file "/Users/" & variable & "/Documents/img.jpg" to POSIX file "/Users/" & variable & "/Desktop/" with replacing
end tell
(确保使用“set”命令生成变量,例如)


希望这能有所帮助!

请澄清您的具体问题或添加其他详细信息,以突出您所需要的内容。正如目前所述,很难准确说出您的问题。请参阅[如何提问]()页面以帮助澄清此问题。因此,我想要的不是粗体的位实际上是一个目录,而是使用相对路径的可变简单语法:
duplicate file((作为文本的文档文件夹路径)和“img.jpg”)到桌面替换
很抱歉,这是我看到的第一个,但你的答案仍然非常准确。实际上,我似乎在这两个问题上都遇到了错误D:“错误”查找程序出错:无法将POSIX文件\“/Users/MitchSimpson/desktop/\”设置为POSIX文件\“/Users/MitchSimpson/Documents/img.jpg\”文件“Macintosh HD:Users:MitchSimpson:Desktop”中的数字-10006:“Finder的副本有缺陷。它也不喜欢posix路径文件引用。我修改了脚本,首先将它们转换为基于冒号的路径。应该可以工作。我不知道这是否只是一个bug,但我似乎在我的桌面别名上遇到了一个错误”文件别名Macintosh HD:Users:Mitc/Desktop/未找到。“编号-43很抱歉,我引入了一个错误,因为我使脚本更“花哨”,将文件名也拆分为属性。我已将代码分散开来,使其现在可以再次工作。(请确保拼写“Mitc/Mitch”正确。)
set variable to "text"