【问题标题】:exit/close cmd launced from batch file that start another batch file从启动另一个批处理文件的批处理文件启动的退出/关闭 cmd
【发布时间】:2019-01-01 19:15:47
【问题描述】:

我使用一个批处理文件来创建另一个批处理文件,其中的某些部分是从文件中提取的,它会创建一个长文件。

我只需要在文件末尾添加一个exit 命令。

实际上创建的批处理文件在完成工作后并没有关闭。

创建另一个批处理文件的代码文件:

 :: 'Create Batch File'
 @echo off
     (for /f "usebackq delims=" %%a in ("D:\Programmi Installati\list.csv") > do (
        echo PING -n %%~NXa localhost ^>NUL 2^>^&1
        echo/
        echo/
     )) > "D:\Programmi Installati\new.bat"

new.bat 的实际结果(错误):

PING -n 10 localhost >NUL 2>&1
exit

PING -n 15 localhost >NUL 2>&1
exit

PING -n 20 localhost >NUL 2>&1
exit

PING -n 25 localhost >NUL 2>&1
exit

new.bat 的纵横比结果(期望):

PING -n 10 localhost >NUL 2>&1


PING -n 15 localhost >NUL 2>&1


PING -n 20 localhost >NUL 2>&1


PING -n 25 localhost >NUL 2>&1
exit

【问题讨论】:

  • 应该是do 而不是> do
  • 您好 bat 文件运行良好,唯一的错误是如何在文件末尾添加生成的 exit 。批处理文件创建另一个带有提取和循环的批处理文件并且运行良好,但我没有找到最后添加的解决方案(仅在最后 1 次)退出。
  • 你在哪里echo 退出?请提供一个list.csv 以便我们能够重现您的问题。编辑您的问题以修复 Compo 提到的错字。另外,如果您在for 循环(echo exit)>>"D:\Programmi Installati\new.bat" 之后放置它是否有效?请向我们提供更多信息,但请不要发表评论。相反,请编辑您的问题。
  • @double-beep 您的解决方案运行良好,这正是我的问题的解决方案,在批处理文件创建结束时的循环后添加 1 个退出(回显退出)>>“D:\Programmi Installati\ new.bat" 谢谢你解决了我的问题。
  • exit 不是代码中唯一的错误。 Compo说的也是其中之一。并且不要使用ping 进行延迟,它会比预期的睡眠时间少一秒How to sleep for 5 seconds in Windows's Command Prompt? (or DOS)How do I make a batch file wait / sleep for some seconds?

标签: batch-file exit


【解决方案1】:

实际上,除了代码块末尾的echo exit 中的拼写错误。修复后您的代码应如下所示:

@rem 'Create Batch File'
@echo off

(for /f "usebackq delims=" %%a in ("D:\Programmi Installati\list.csv") do (
    echo PING -n %%~NXa localhost ^>NUL 2^>^&1
    echo/
    echo/
))>"D:\Programmi Installati\new.bat"
echo exit >> "D:\Programmi Installati\new.bat"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多