【问题标题】:Batch file runs other batch files without press key批处理文件无需按键即可运行其他批处理文件
【发布时间】:2016-11-03 10:44:01
【问题描述】:

我有一个运行多个批处理文件的批处理文件。我在这个文件中使用了 CALL 语句。但是在执行一个批处理文件后,我必须按任意键才能运行其他批处理文件。是否有任何可能性如何禁用此条件以在每个批次调用后按任意键?

附:当我运行单个批次时,我需要“按任意键”。

有一个主批处理文件的例子

 @echo off
 echo This batch runs all scripts
 CALL A.bat 
 CALL B.bat 
 CALL C.bat         

【问题讨论】:

  • 删除pause 命令。如果没有,请显示(相关部分)您的代码。
  • @Stephan 我收到了这批 -> pastebin.com/63jgBHvU
  • 该脚本不会让您“按任意键”。查看调用的脚本。,
  • 我在这些批处理文件中暂停了。但是当我单独运行批处理时,我需要暂停。但是当我运行这批时,我不想按任何键。

标签: windows batch-file


【解决方案1】:

您(可能)在每个调用的脚本中都有一个pause 命令。删除它们。

如果您不允许修改这些脚本(或者修改它们没有意义,因为它们是动态创建的),您可以通过将echo 传递给脚本来伪造ENTER

echo/|call A.bat
echo/|call B.bat
echo/|call C.bat

echo/ 只会输出 CRLF(= ENTER = 空行)
| 会将左侧命令的输出作为右侧命令的输入。

注意:这将为脚本中的第一个命令提供ENTER,该命令需要一些输入。如果幸运的话,这是pause 命令。

编辑以匹配您最近对问题的评论:

当您可以编辑您的a.bat 等时,您可以用此行替换pause 命令:

echo %cmdcmdline%|find /i " CALL " >nul || pause

这会检查脚本是否为called 并且仅执行pause,否则。

%cmdcmdline% 包含执行脚本的确切方式。

【讨论】:

  • 是的,这正是我想要的。谢谢!
  • 添加了一些您可能会喜欢的内容;)
【解决方案2】:

使用 Pause>null 来禁止“按任意键继续”。消息。

http://ss64.com/nt/pause.html

【讨论】:

  • 这只会抑制消息。仍然需要按任意键。
  • 在暂停前做一些回声是一种解决方案@echo Hello World
  • 暂停后(不是之前)
  • @SirAlex 你能说得更具体点吗?您可以在此链接中查看我的批次 -> pastebin.com/63jgBHvU
猜你喜欢
  • 1970-01-01
  • 2020-06-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 2012-12-18
  • 1970-01-01
  • 2020-12-24
  • 2015-05-12
相关资源
最近更新 更多