【问题标题】:Closing a batch after starting an .exe file启动 .exe 文件后关闭批处理
【发布时间】:2016-10-12 19:08:05
【问题描述】:

所以我在运行文件后关闭 CMD 时遇到问题! 在下面的代码中,如您所见,我正在使用 EXIT 命令,但是在按 Enter 后,驱动器名称会出现,并且这种情况一次又一次地发生 我已经尝试过没有暂停,它不会工作(我希望它在那里暂停) 所以我希望它在用户按下 Enter 后退出 CMD。

我给它一个错误的 .net 框架编号来测试它是否会运行 exe 文件,它运行它但之后不会关闭(我的意思是 cmd 不会关闭)

我看过这些问题:

Close a batch file after running the jar file

close windows command prompt after all process completed in the batch file

cmd.exe doesn't close after starting exe

这是我遇到的问题:在批处理文件运行时拍了一张照片,您可以在下面的链接中看到!

How the CMD looks when I run the batch file

提前致谢!

@echo off

echo " _____________________________ "
echo "|                             |"
echo "|       softRAD Loader        |"
echo "|_____________________________|"

echo " _________________________________________________________________________ "
echo "|                                                                         |"
echo "|          Checking the .Net Framework Installed on Your System           |"
echo "|_________________________________________________________________________|"


REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v5.5" /v Version
IF %errorlevel%==0 GOTO INSTALL
IF %errorlevel%==1 GOTO UNINSTALL




:INSTALL

echo " __________________________________________________________ "
echo "|                                                          |"
echo "|  .Net Framework v3.5 found , Starting the softRAD.exe    |"
echo "|----------------------------------------------------------|"
echo "|             This window closes in 3 seconds              |"
echo "|__________________________________________________________|"

echo.
ping -n 2 127.0.0.1>nul
echo "   3   "
ping -n 2 127.0.0.1>nul
echo "   2   "
ping -n 2 127.0.0.1>nul
echo "   1   "
ping -n 2 127.0.0.1>nul

GOTO end

:UNINSTALL

echo " __________________________________________________________ "
echo "|                                                          |"
echo "|  .Net Framework Not found , Attempting to Install it.    |"
echo "|----------------------------------------------------------|"
echo "|          If this Doesnt Work , Please Install the        |"
echo "|      .net Framework Included on the DVD manually.        |"
echo "|__________________> 3.5 client profile <__________________|"

cmd /K "%~dp0dotnetfx35.exe"
pause
EXIT


:end

exit

【问题讨论】:

  • 您不需要使用 cmd.exe 来启动 .Net 框架安装。您可以单独使用此代码:"%~dp0dotnetfx35.exe"

标签: windows batch-file cmd


【解决方案1】:

cmd /K 中的/K 表示您在命令完成后保持 cmd 窗口打开。

要在命令完成后关闭 cmd 窗口,请使用 /C 而不是 /K

来自cmd /?的输出:

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:关] [[/S] [/C | /K] 字符串]

/C 执行字符串指定的命令,然后终止
/K 执行字符串指定的命令但保留

【讨论】:

  • 哦,就是这样,非常感谢,我仍然不确定我在做什么!第一次做批!
  • 确实不需要使用 CMD.exe 来启动可执行文件。
  • 你能告诉我我应该怎么做吗?
  • @SinaM.Azad - 标准的做法是 Noodles 建议的 - start "Title of the Window" "%~dp0dotnetfx35.exe",其中“窗口标题”可以是任何东西(或什么都不是,但你做 i> 需要在start"%~dp0dotnetfx35.exe" 之间加上引号,否则它将不起作用。就像壁球手建议的那样,您也可以只说"%~dp0dotnetfx35.exe"
  • @SomethingDark 非常感谢,我更改了代码,它就像一个魅力!
【解决方案2】:

输入start /?。与键入时不同,批处理文件会等待程序退出后再继续。 Start 修改启动程序的标准行为。最简单的,

start "Title" Notepad 

另外timeout 是超时的方法,而不是ping。输入timeout /?

【讨论】:

  • 感谢您花时间回答我,但我应该如何克服我的问题?我正在查看启动命令的选项,但老实说找不到合适的选项!
  • 感谢超时建议,不知道!
  • 我注意到超时方法在 Windows XP 上不起作用,只是让您知道!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
相关资源
最近更新 更多