由 Indesign 扩展脚本创建的 VBScript 不执行部分代码 - WScript.Shell 运行

VBScript created by Indesign Extended Script, does not execute part of the code - WScript.Shell run

提问人:Wendel Fabiano R. da Silva 提问时间:7/5/2022 最后编辑:Wendel Fabiano R. da Silva 更新时间:7/8/2022 访问量:285

问:

我有一个由 Indesign JSX(扩展脚本)创建的 VBScript。 它运行 bash 命令 (DOS) 将 ODT 转换为 PDF。 但是,通过 Indesign 这部分 (shell.Run) 不起作用。 我放了两个 MsgBox,一个在之前,一个在之后,都运行了。 只有没有的 PDF 转换部分。

VBS文件保存在桌面上,如果我通过单击文件来运行它,它将运行所有指令。 该视频表明,在 indesign 中它不会运行,已经在资源管理器中,它可以 100% 工作。https://youtu.be/0-O7KWVIOdo

代码 JSX

    function fnc_ODT_RunVbsThroughJs(){
    //  community.adobe.com/t5/illustrator-discussions/run-vbscript-through-javascript-in-illustrator/td-p/10082969
    var str = 
        'Set myApp = CreateObject("InDesign.Application")\r\n' + 
        'Set oFSO = CreateObject("Scripting.FileSystemObject")\r\n'+
        'Set shell = CreateObject("WScript.Shell")\r\n'+
        'MsgBox "Bem vindo seu Codorna"\r\n' + 
        'shell.Run  """C:\\Program Files (x86)\\LibreOffice 4\\program\\swriter.exe"" --headless --convert-to pdf 4001278.odt"\r\n' +
        'MsgBox "Tchau seu Codorna"'
        ;

    var vbsFile = new File(Folder.desktop + '/codorna.vbs');

    try {
        vbsFile.open('w');
        vbsFile.write(str);

    } finally {
        vbsFile.close();
    }

    vbsFile.execute();
}

代码 VBS

Set myApp = CreateObject("InDesign.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
MsgBox "Bem vindo seu Codorna"
shell.Run  """C:\Program Files (x86)\LibreOffice 4\program\swriter.exe"" --headless --convert-to pdf 4001278.odt"
MsgBox "Tchau seu Codorna"

更新 07/07/2022.

我尝试了其他文件夹@Yuri Khristich。

我试过BAT,同样的问题......不。。。更 糟:

  • 通过 indesign 或单击 Windows 资源管理器,不起作用。
  • 通过cmd:c:...\ODTtoPDF.bat工作100%

但不要尝试记事本,我会的。只能看到运行 .exe 文件。

我需要将 ODT 转换为 PDF。

显然,最好的是 soffice 或 swriter。

以前,我尝试按单词转换,但有些文件只是在 word 中崩溃,swriter 不会发生这种情况。

07/07/2022 第二轮

  • @KJ,我尝试了您的想法,:(没有发生任何不同的事情,我重命名了资源文件,使用管理权限重新打开了 Indesign,重新安装了资源,但问题仍然存在

我删除了参数并工作了。不幸的是,我需要参数来生成 pdf。

Indesign JSX

function fnc_ODT_RunVbsThroughJs(){
    //  community.adobe.com/t5/illustrator-discussions/run-vbscript-through-javascript-in-illustrator/td-p/10082969
    var str = 
        'Set oFSO = CreateObject("Scripting.FileSystemObject")\r\n'+
        'Set shell = CreateObject("WScript.Shell")\r\n'+
        'MsgBox "Bem vindo seu Codorna"\r\n' + 
        'shell.Run  """C:\\Program Files (x86)\\LibreOffice 4\\program\\swriter.exe""" \r\n' +
        //'shell.Run  "C:\\PROGRA~2\\LIBREO~1\\program\\swriter.exe --headless --convert-to pdf 4001278.odt"\r\n' +
        //'shell.Run   "C:\\Windows\\System32\\notepad.exe"' 2022-07-07 NOTEPAD WORKS

        'MsgBox "Tchau seu Codorna"'
        ;

    //var vbsFile = new File(Folder.desktop + '/codorna.vbs');
    var vbsFile = new File(scriptFolder + '/codorna.vbs');

    try {
        vbsFile.open('w');
        vbsFile.write(str);

    } finally {
        vbsFile.close();
    }

    vbsFile.execute();
}

由 Indesign 生成和运行的 VBS (codorna.vbs)

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
MsgBox "Bem vindo seu Codorna"
shell.Run  """C:\Program Files (x86)\LibreOffice 4\program\soffice.exe""" 
MsgBox "Tchau seu Codorna"
JavaScript PDF VBScript Adobe InDesign ODT

评论

1赞 Yuri Khristich 7/6/2022
我没有累。只是一个猜测。Win10 默认具有偏执模式。也许它以这种方式阻止了启动 vbs 脚本。据我所知,有时更改文件夹会有所帮助。尝试更改为任何其他位置。Folder.desktopFolder.temp
2赞 Yuri Khristich 7/6/2022
我手头没有。所以我试着改为启动。您的脚本在 Windows 7 和 InDesign CS 6 上对我来说效果很好(它会创建 vbs、执行它并打开记事本)。如果您只需要运行该命令,您可以尝试创建 cmd (bat) 脚本而不是 vbs,并通过 .swriter.exenotepad.exeswriter.exe --headless --convert-to ...execute()
1赞 Yuri Khristich 7/7/2022
我刚刚在 Windows 10 和 InDesign CS6 上尝试过,它也可以正常工作(它会打开记事本)。所以,它可能与Windows 10无关。
0赞 Yuri Khristich 7/9/2022
一个愚蠢的问题......您是否尝试过使用完整路径,例如:而不是?d:\\temp\\4001278.odt4001278.odt
0赞 Wendel Fabiano R. da Silva 8/4/2022
定义运行参数的方式是问题所在,我将尝试其他使用参数运行的方法:stackoverflow.com/questions/40041460/... social.technet.microsoft.com/Forums/Lync/en-US/......

答: 暂无答案