使用 RunProgram 时,用于记录的 CMD 窗口永远不会显示我在使用“RunProgram”调用我的 exe 时遇到问题,应该会出现用于日志记录的 CMD 窗口,但它从未显示。
手动运行CMD窗口可以正常弹出。 有人可以帮我解决这个问题吗? 提前致谢 : )
JSL代码:
RP = Run Program(
Executable(
exefilepathRoot || "CommonalityEngine\PyScript\get_data_from_cache.exe"
),
Options( Char( CAEngine_Main:ConfigFileName ) ),
ReadFunction( "text" )
);
在没有 JSL 的情况下手动运行时可以显示 CMD 窗口:

质量和工艺工程回复:使用 RunProgram 时永远不会显示用于记录日志的 CMD 窗口这听起来像@Craige_Hales那么可能是正确的,因为您的变量 rp 可能已经具有该日志信息。尝试运行这个:
names default to here(1);
RP = Run Program(
Executable(
exefilepathRoot || "CommonalityEngine\PyScript\get_data_from_cache.exe"
),
Options( Char( CAEngine_Main:ConfigFileName ) ),
ReadFunction( "text" )
);
New Window("Output", text box(RP));
或者,这里是任何 Windows 上的人都可以运行的示例:
names default to here(1);
rp = Run Program(
Executable( "cmd.exe" ),
Options( {"/c", "TaskList\!n"} ),
Read Function( "text" ) // returns all text
);
New Window("Output", text box(rp));回复:使用 RunProgram 时永远不会显示用于记录日志的 CMD 窗口嗨,呃,
感谢您的解决方案。 我希望用户看到该窗口,因为该窗口上打印有日志。回复:使用 RunProgram 时永远不会显示用于记录日志的 CMD 窗口是的,我们需要更多信息。 您是否与 get_data_from_cache.exe 交互? 它会打开其他窗口吗? 它是否需要接收某种文件结尾?
RP 变量可能已经保存了 CMD 窗口中出现的文本,请尝试
write(rp);
看看这是否是你想要的。
如果您需要在窗口中输入某些内容,RunProgram 的 writeFunction 可以提供文本。
或者,您可能想要运行 CMD.EXE 并向其传递要运行的程序的名称。
回复:使用 RunProgram 时永远不会显示用于记录日志的 CMD 窗口你好@白云,
一旦该窗口打开,您希望对其做什么? “运行程序”功能故意不显示用户界面,因为它的目的是让您完全通过脚本控制该程序。最有可能的是,您想要在 CMD 窗口中执行的操作,您可以在 JMP 中执行,并让 JMP 通过读写函数将这些指令传递给程序。
此链接可能会帮助您开始:
https://www.jmp.com/support/help/en/15.2/jmp/run-external-programs.shtml