Set theFolder to (Macintosh HD:Users:jr:Desktop:Dsource)
Set rnd to (random number from 1 to 3)
Set myScript to load script file (rnd) of theFolder
Run script myScript
这是我试图用来从文件夹中打开随机脚本文件并执行它们的脚本。我已经编写了3或4种不同类型的脚本来尝试这样做,但似乎没有任何工作。有人可以指出错误或告诉我如何做到这一点。感谢
答案 0 :(得分:0)
==> 1.在桌面上创建一个名为“Dsource”的文件夹
==> 2.创建一个脚本并将其命名为“1”。该脚本应包含display dialog "Script 1"
,因此当您启动它时,它会显示脚本编号。保存/将其放入Dsource文件夹并重复(但更改显示对话框中的数字),直到您有3个脚本。注意:文件扩展名通常隐藏在Finder中,但此类脚本的扩展名为“.scpt”。
如果给出上述内容,则应该有效:
run script (load script file (((path to desktop) as text) & "Dsource:" & (((random number from 1 to 3) as text) & ".scpt")))
此外: 更长的版本,它做同样的事情,但一步一步地做:
try
set pathToMyFolderOnDesktop to (path to desktop as text) & "Dsource:" as alias
set rnd to (random number from 1 to 3)
set rndFileName to (rnd as text) & ".scpt"
set FullPath to pathToMyFolderOnDesktop & rndFileName as text
set myScript to load script (FullPath as alias)
run script myScript
on error the error_message number the error_number
display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
return
end try
如果 - 例如 - 文件夹不存在(-43)。
,这也会显示错误答案 1 :(得分:0)
您正尝试使用字符串访问文件。 "Macintosh HD:Users:jr:Desktop:Dsource"
不是文件夹,除非您将其设为一个文件夹。那么,这一行
Set myScript to load script file (rnd) of theFolder
从字符串中获取rnd
字符(如果M
为1,则为rnd
),并尝试对其进行load script
。
要将字符串设置为Applescript识别为文件夹的字符串,您可以在前面添加alias
,以便alias "Macintosh HD:Users:jr:Desktop:Dsource"
假设您可以使用以下行获取文件夹的所有文件,您的逻辑仍然有点偏差。
Set myScript to load script file (rnd) of theFolder
此行将定位到名为 rnd
的文件。不是文件夹的rnd
文件。换句话说,此行评估为
Set myScript to load script file "Macintosh HD:Users:jr:Desktop:Dsource:1"
Applescript提供some
命令,允许您从列表中选择随机项
some item of {1, 2, 3}
--> 2
some item of {1, 2, 3}
--> 1
因此,请将现有脚本文件收集到列表中,然后从该列表中选择一个随机脚本文件。
tell application "System Events"
set scriptFiles to files of alias "Macintosh HD:Users:jr:Desktop:Dsource:" whose kind is "Compiled OSA Script"
end tell
if (count scriptFiles) > 0
set myScript to load script (some item of scriptFiles)
run myScript
else
display dialog "No script files were found."
end if