使用 AppleScript 在用户主目录中创建挂载卷的别名

Create Alias of Mounted Volume in User Home with AppleScript

在 Mac OS 10.10 上,我正在尝试为已安装的卷创建一个别名,并将该别名放入用户的主文件夹中,以便稍后将其放入扩展坞中。该卷是一个名为 satffdata$ 的 SMB 共享(它是一个隐藏的 Windows 共享,因此末尾有 $)。我尝试了不同的路径变体,例如明确定义它并使用内置别名但无济于事。

请看下面的代码然后输出。我得到的错误代码和我读过的内容表明问题可能是它将路径视为字符串,但是我无法明确定义启动磁盘名称或用户配置文件,因为这些在当时可能不同我们的 Casper Suite 系统会自动 运行 脚本。

tell application "Finder"
    activate

    try
        display dialog "Setting your StaffData$ (P Drive) Shortcut. Press OK to continue."
        mount volume "smb://servername/staffdata$"
        set staffData to POSIX path of "/Volumes/staffdata$"
        set homeDir to POSIX path of (path to home folder)
        display dialog staffData
        display dialog homeDir
        make new alias to staffData at homeDir
        set name of result to "staffdata$"

    end try
end tell

输出如下:

tell application "Finder"
    activate
    display dialog "Setting your StaffData$ (P Drive) Shortcut. Press OK to continue."
        --> {button returned:"OK"}
    mount volume "smb://servername/staffdata$"
        --> error number -10004
end tell
tell application "Script Editor"
    mount volume "smb://servername/staffdata$"
        --> file "staffdata$:"
end tell
tell application "Finder"
    display dialog "/Volumes/staffdata$"
        --> {button returned:"OK"}
    display dialog "/"
        --> {button returned:"OK"}
    make new alias to "/Volumes/staffdata$" at "/"
        --> error number -10000
end tell

如果您有任何问题,我会尽快回复。谢谢!

脚本的主要问题是,Finder 不接受 POSIX 路径。

Finder 的字典有一个 属性 home 表示主文件夹,disk 对象可以很容易地通过名称指定

试试这个

display dialog "Setting your StaffData$ (P Drive) Shortcut. Press OK to continue."
try
    set volumeName to "staffdata$"
    mount volume "smb://servername/" & volumeName
    tell application "Finder"
        if not (exists alias file volumeName of home) then
            make new alias file to disk volumeName at home
            set name of result to volumeName
        end if
    end tell
on error e
    display dialog e
end try