我正在尝试执行labview VI,从另一台Windows机器上通过ssh调用的.bat文件启动它。所以我这样做
ssh myuser@IP
cd Desktop
launchVis.bat
Run Code Online (Sandbox Code Playgroud)
我使用用户名和密码进行连接。myuser 拥有启动批处理文件的所有权限。同时,我通过同一台计算机上的 RDP 连接检查执行情况。
如果我从远程计算机上的cmd行运行bat文件,VI将正常启动如果我从ssh连接运行bat文件,我可以在bat文件中看到回显的输出,但LabVIEW将在不同的会话中启动来自 RDP-TCP#1。结果是,我可以看到一个名为“Services”的会话中启动了一个“LabVIEW”进程,但我看不到 VI 正在执行,而且一般来说,我不知道 IF 是否正在执行。
谷歌搜索这个问题,似乎我无法避免在“服务”会话中启动进程,因此,我无法通过 SSH 启动任何 GUI 程序。建议的解决方案是使用 PsExec,或者可能是 ssh 服务器的第三部分(通过第三部分 ssh 服务器,我在 Windows 7 上实现了目标)
我有一个主批处理文件,而不是调用其他4个批处理文件,所以我们可以并行运行.
例:
Main.bat
start call batch1.bat
start call batch2.bat
start call batch3.bat
start call batch4.bat
exit
Run Code Online (Sandbox Code Playgroud)
我希望Main.bat在所有batch1到batch 4停止执行后退出.通过这种方式,我可以获得批处理文件的总运行时间.问题是Main.bat甚至在batch1到batch4完成执行之前退出.
我尝试为每个批处理文件计算%errorlevel%,但即使4个.bat文件仍在运行,它总是返回0.
希望有人可以帮助我!
谢谢!:)