【问题标题】:Start /WAIT Program.bat启动 /WAIT Program.bat
【发布时间】:2011-10-28 02:26:11
【问题描述】:

我正在尝试编写一个启动另一个批处理文件的批处理文件,等待该批处理文件完成其工作,然后在其他批处理文件完成后继续退出。但是,当我手动关闭第一个批处理文件启动的批处理文件时,它会出现提示:

^CTerminate batch job (Y/N)?

有没有办法自动选择'N',因为它需要在退出时删除一些临时文件。


脚本的目的/前提:能够移除闪存驱动器并锁定工作站(因此将文件复制到外部源)。

脚本摘要:

  1. 程序将文件复制到 %homedrive%
  2. 程序启动另一个脚本(其中一个文件复制到 homedrive)
  3. 该程序退出后,会删除复制的文件

尝试过的解决方案:

  • START /WAIT +/I +/B 内部的不同命令开关(添加 /I/B 没有产生任何有用的东西)
  • START /WAIT program.bat +/C +/K 之后使用/C/K 开关 (没有影响)

【问题讨论】:

    标签: process cmd wait


    【解决方案1】:

    好吧,您可以使用echo n | program.bat 自动将n 回复到^CTerminate batch job (Y/N)?,但是欺骗此方法的一个简单方法是点击并按住[Ctrl]-C

    根本没有可靠的方法来禁用任何程序(更不用说批处理文件)的中断。是什么阻止了用户关闭窗口?

    【讨论】:

    • 天哪!有效。我将代码从 start /WAIT program.bat 更改为: start /WAIT program.bat | echo n 就像一个魅力!非常感谢您的提示!
    【解决方案2】:

    你会想要这样的命令:

    start /wait program.bat|echo n>nul
    

    ">nul" 将隐藏之后出现的 "n"。但似乎没有办法阻止“^C”出现。

    【讨论】:

    • 似乎有一种方法可以使 ^C 静音:` start /wait program.bat 2>nul | echo n > nul`
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2021-07-27
    • 2014-04-21
    相关资源
    最近更新 更多