我正在使用Windows 7 64位
以下是我用来启动的代码段
@echo off
call "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
call "G:\League of Legends\lol.launcher.exe"
exit
但除非我关闭LOLRecorder.exe,否则它将无法启动我的lol.launcher.exe ....基本上我希望它们都运行并且cmd提示符在它们启动后退出。这里有什么不对?我检查了另一个stackoverflow回答Here,但它指的是我正在使用的相同方法。
编辑:
使用启动命令,它只启动2个终端窗口,没有任何启动!
@echo off
start "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
start "G:\League of Legends\lol.launcher.exe"
exit
答案 0 :(得分:20)
使用启动命令,它只启动2个终端窗口,没有任何启动!
问题是引号(由于路径中的空格,不幸的是需要引号)。 start
命令似乎不喜欢它们。
您可以通过使用所有目录的短DOS名称(并删除引号),或通过单独指定目录并引用它(start
命令似乎能够处理)来解决此问题。
试试这个:
@echo off
start /d "C:\Program Files (x86)\LOLReplay" LOLRecorder.exe
start /d "G:\League of Legends" lol.launcher.exe
或者,如果您的批处理文件将来变得更复杂,或者您的程序名称中包含空格,请执行以下操作:
@ECHO OFF
CALL :MainScript
GOTO :EOF
:MainScript
CALL :RunProgramAsync "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
CALL :RunProgramAsync "G:\League of Legends\lol.launcher.exe"
GOTO :EOF
:RunProgramAsync
REM ~sI expands the variable to contain short DOS names only
start %~s1
GOTO :EOF
答案 1 :(得分:3)
start需要窗口标题的参数。 尝试: 启动“Lolrecorder”“C:\ Program Files(x86)\ LOLReplay \ LOLRecorder.exe” 开始“Lol-Launcher”“G:\ League of Legends \ lol.launcher.exe”
这将通过启动“Lolrecorder”和“Lol-Launcher”的标题启动cmd-windows
答案 2 :(得分:2)
指定一个标题和/ c开关,告诉STARTed窗口在命令完成后消失。
start "recorder" /c "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe"
start "LOL" /c "G:\League of Legends\lol.launcher.exe"
到目前为止,reference已回答几乎每一个关于CMD的问题
。答案 3 :(得分:1)
call
仅用于批处理文件,它等待被调用者返回。您应该使用start
命令启动后台程序。作为额外的奖励,您可以指定流程的优先级。如果您需要以其他用户身份运行,请使用runas
。
答案 4 :(得分:0)
有些人可能会对同时检查所有驱动器的正确性感兴趣。这是一个简单的.bat文件:
@echo off
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%a:\ start cmd /c "echo %%a: & chkdsk %%a: & pause"
脚本在检查每个驱动器后等待键。每个驱动器都有自己的cmd窗口。
如果一个驱动器是另一个容器(例如,VeraCrypt容器,VHD,VHDX),则应避免检查和固定(上面只是检查)驱动器。