【问题标题】:Call one batch from another, then start services从另一个批次调用一个批次,然后启动服务
【发布时间】:2013-02-13 02:39:01
【问题描述】:

我正在尝试从另一批次调用本地计算机上的批次。然后我试图在远程计算机上启动服务。这是我的代码:

call C:\Oracle\Middleware\user_projects\epm_system\bin\start.bat > SS.log
sc \\OtherMachine start "Service1" >> SS.log
sc \\OtherMachine start "Service2" >> SS.log

我已经确认无需事先启动start.bat 即可启动服务。但是,当我尝试使用第一行代码调用 start.bat 时,它只会在完成后关闭而不运行最后两行。

【问题讨论】:

  • 这是否意味着它不会执行您上面发布的代码中的最后两行?
  • 是的,我就是这么说的。
  • 奇怪。 start.bat 是否包含 EXITGOTO:EOF 命令?如果是这样,您可以尝试将其更改为 EXIT /B robvanderwoude.com/exit.php
  • 无法更改批次。有什么方法可以在新窗口中调用它,让它关闭并让第一个继续运行?
  • 如果它包含EXIT 命令则不会。 EXIT 命令显然会杀死整个批次。您必须编写一个程序,如下所示:stackoverflow.com/a/361121/102937

标签: command-line batch-file


【解决方案1】:

您可以在第一批中调用 cmd.exe,如果第二批包含退出,则不会关闭它。 示例:
调用.cmd

cmd /c "c:\temp\test.cmd"
echo end of first batch

test.cmd

@echo off
echo test 
exit

结果:

C:\temp>call.cmd
test
end of first batch

【讨论】:

  • 我试过这个,但没有用。不过,感谢您的建议。
  • @DrewRush 请提供更多详细信息:错误是什么? start.bat 里面有什么?
  • 没关系。我按小时计费,所以我只能在任何给定问题上花费这么多时间。我发现了另一种可行的方法。感谢您的时间和兴趣,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
  • 2020-11-01
  • 2020-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多