修复 InDesign 脚本中的 doScript 函数错误

问题描述

我为 InDesign 编写了一个脚本,并使用 doScript 来运行一个 bat 文件。此脚本适用于某些系统,而不适用于其他系统。 错误在图像中。

enter image description here

我以管理员身份运行 InDesign。但它给出了另一个错误

enter image description here

如何修复错误

function batFile(str) {
    var path = "~\\AppData\\Roaming\\test\\";
    var filename = 'b1.bat';

    var file1 = new File(path + filename);
        file1.encoding = 'UTF-8';
        file1.open('w');
        var txt = "systeminfo | findstr /B /C:\"OS Name\" /C:\"OS Version\">%appdata%\\test\\t1.txt"
        file1.write(txt);
        file1.close();

    var cmdcode = "CreateObject(\"WScript.Shell\").Run \"%appdata%\\test\\b1.bat\",True";
    app.doScript(cmdcode,ScriptLanguage.visualBasic,undefined,UndoModes.FAST_ENTIRE_SCRIPT);
    var result = path + "t1.txt";
    var arry = openFile2(result);
    
    if (arry.length != 0) {
        return arry;
    } else {
        return "null";
    }
}

**

更新

我发现了问题。 当用户名由两部分组成时,例如“您的姓名”会导致此问题。为了解决这个问题,我们需要将地址放在两个双引号中。

var txt = "systeminfo | findstr /B /C:\"OS Name\" /C:\"OS Version\">\"%appdata%\\test\\t1.txt"\"
    

**

解决方法

这是 UserVoice 中报告的已知错误:https://indesign.uservoice.com/forums/601180-adobe-indesign-bugs/suggestions/41072476-type-library-is-not-automatically-created-by-cc202。解决这个问题的一个常见技巧是,在客户端机器上至少以管理员运行一次 InDesign。这将激活 VBS 支持。

,

我不知道你的脚本有什么问题。但为了以防万一,你可以这样运行 bat 文件:

var bat_file = File("your_file.bat");
bat_file.execute();