【问题标题】:Getting the current user name or computer name in Extendscript在 Extendscript 中获取当前用户名或计算机名
【发布时间】:2013-05-17 14:46:46
【问题描述】:

我终于在我的 InDesign CS6 脚本中取得了一些进展。现在,为了让它知道应该在哪台打印机上打印文档,我需要查询脚本在哪台计算机上运行。除此之外,也许是当前登录用户的名称,这实际上是一回事。顺便说一下,这是一个 Mac OS X 环境。任何人都可以帮助或至少为我指明正确的方向吗?

【问题讨论】:

    标签: javascript printing extendscript computer-name


    【解决方案1】:

    正如http://jongware.mit.edu/idcs6js/pc_$.html 所见,$.getenv() 方法可用于获取任何环境变量。在 Windows 上你可以使用 $.getenv("COMPUTERNAME"),在 Mac 上 $.getenv("HOSTNAME") 应该可以工作。

    如果这不起作用,请告诉我。我没有要测试的 Mac,但可能还有其他选择。

    编辑 1:您在使用 InDesign Server 吗?如果是这样,app.serverHostNameapp.serverSettings.hostName 就可以了。

    编辑 2:这是另一种可能的解决方案:

    var outputFile = new File(Folder.desktop.fsName + "/GetHostName.sh");
    outputFile.open("w");
    try {
        outputFile.write("scutil --get HostName > ~/Desktop/HostName.txt");
    }
    finally {
        outputFile.close();
    }
    outputFile.execute();
    
    var inputFile = new File(Folder.desktop.fsName + "/HostName.txt");
    inputFile.open("r");
    try {
        var hostName = inputFile.read();
    }
    finally {
        inputFile.close();
    }
    
    $.writeln("Host Name: " + hostName);
    

    这个想法是写一个shell脚本到文件然后执行它。 shell 脚本获取主机名并将其写入文件。然后我们打开文件并读取主机名。

    【讨论】:

    • @dln385,我知道你的目标是什么,但恐怕$.getenv();$.getenv("HOSTNAME"); 都会返回null。我将查看在线某处是否有 Mac OS X 环境变量列表。而且我们没有使用 Server 风格,只是使用普通的 InDesign CS6。
    • 使用$.getenv() 方法,我发现$.getenv("USER") 确实 实际上返回了当前登录的用户,这对我的目的来说应该足够了。但是,如果您碰巧发现 Mac OS X 10.8 也用于计算机名称的环境变量 @dln385,请告诉我。谢谢!
    • 看那个。这似乎是一个非常多的代码,只是为了获取运行脚本的计算机的名称。无论如何,我想我们现在会坚持使用$.getenv("USER") 方法。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    相关资源
    最近更新 更多