AppleScript中的“Do Shell Script”命令在脚本编辑器中工作,但在我的cocoa applescript应用程序中不可用

时间:2015-08-12 02:09:04

标签: xcode shell cocoa applescript

所以我在applescript中创建了一个脚本,它使用“do shell script”命令为google apps管理器运行终端命令(如果你不知道那是什么,那么它并不重要)。我正在制作一个cocoa applescript应用程序,并希望将此脚本包含在功能中。该脚本基本上重置了用户的密码。

下面我在脚本编辑器和xcode中提供了脚本。我遇到的问题是,当我通过脚本编辑器运行脚本时脚本工作得很好但是当我在xcode中运行它时它不起作用。错误如下所示。

-

2015-08-11 18:49:03.205 DMA技术团队[16153:1910832] *** - [AppDelegate Passwordreset:]:python:无法打开文件'Users / Nikhil / Desktop / gam / gam.py ':[Errno 2]没有这样的文件或目录(错误2)

奇怪的是我的“gam”目录和“gam.py”文件肯定都在正确的位置,所以甚至不应该出错。

我想知道是否有一些我需要做的特别的事情,这与applecript obj c不同,而不仅仅是平面的AppleScript?

注意“CTN”只是一个电子邮件地址。 checkEmail()是一个检查输入的电子邮件是否已存在的函数,它不是错误的原因。

脚本编辑器中的脚本

set User to short user name of (system info)

display dialog "What is the ctn?" default answer ""
set theCTN to text returned of result

display dialog "What is the new password?" default answer ""
set thePassword to text returned of result

do shell script "python Users/" & User & "/Desktop/gam/gam.py update user " & theCTN & " password " & thePassword

Xcode应用代理中的脚本

 on Passwordreset_(sender)

    set User to short user name of (system info)

    set theCTN to RESETPASSIND_CTN's stringValue() as text

    set thePassword to RESETPASSIND_PASSWORD's stringValue() as text

    do shell script "python Users/" & User & "/Desktop/gam/gam.py update user " & theCTN & " password " & thePassword

 end Passwordreset_

谢谢!

1 个答案:

答案 0 :(得分:1)

您正在使用相对路径名(Users / ...)而不是绝对路径(/ Users /...)

XCode项目往往是在一个不起眼的项目构建目录中开始的。 据推测(我还没有检查过)脚本编辑器是从" /"开始的。