如何在Windows批处理脚本中加载多个程序?
我试图创建一个批处理文件来加载多个窗口程序,更具体地说,是控制外围飞行硬件的应用程序 我似乎不知道如何连续打开所有应用程序。我尝试了很多方法,包括运行可执行应用程序:如何在Windows批处理脚本中加载多个程序?,windows,batch-file,Windows,Batch File,我试图创建一个批处理文件来加载多个窗口程序,更具体地说,是控制外围飞行硬件的应用程序 我似乎不知道如何连续打开所有应用程序。我尝试了很多方法,包括运行可执行应用程序: @echo off cd "D:\Controls\" & start "D:\HW_Controls\Control1.exe" & cd "D:\Controls\" & start "D:\HW_Controls\Control2.exe" & cd "D:\Controls\" &
@echo off
cd "D:\Controls\" & start "D:\HW_Controls\Control1.exe" &
cd "D:\Controls\" & start "D:\HW_Controls\Control2.exe" &
cd "D:\Controls\" & start "D:\HW_Controls\Control3.exe"
这将一次只运行一个应用程序,直到我退出那个应用程序,这是我不想要的。我希望它们连续打开。因此,我在StackOverflow的某个地方读到一篇旧文章,尝试将每个应用程序作为自己的批处理文件运行,如下所示:
@echo off
start "D:\Controls1.bat" &
start "D:\Controls2.bat" &
start "D:\Controls3.bat"
其中的每个批处理文件看起来类似于:
cd "D:\Controls\" & start "D:\HW_Controls\Control{1..3}.exe"
我也尝试过使用chdir:
chdir "D:\Controls\" & start "D:\HW_Controls\Control{1..3}.exe"
当我尝试在中加载批处理文件时,它似乎不会更改目录,并且只会在初始批处理文件所在的位置(在本例中为桌面目录)打开一个命令提示符
我知道在Windows启动时可以选择打开它们,但这不是我想要的。我想在需要使用应用程序时加载它们
奖励点:如果有人能告诉我在我完成批处理脚本时如何退出所有应用程序。这里有一种方法可以一次启动多个程序:
@For %%A in ("notepad.exe" "chrome.exe" "calc.exe") do start "" %%~A
以下是一种同时启动多个程序的方法:
@For %%A in ("notepad.exe" "chrome.exe" "calc.exe") do start "" %%~A
批处理解析器逐行工作<代码>&用于在一行中写入两个命令。因此,用
&
结束一行是没有意义的
为了便于阅读,应限制和的使用
cd
应与/d
开关一起使用,以便能够切换到另一个驱动器
start
将引用的第一个参数作为窗口标题,因此为其指定一个伪标题
start
有一个/d
参数来设置工作文件夹,因此您根本不需要cd
:
因此,批处理文件简化为:
@echo off
start "" /d "D:\Controls\" "D:\HW_Controls\Control1.exe"
start "" /d "D:\Controls\" "D:\HW_Controls\Control2.exe"
start "" /d "D:\Controls\" "D:\HW_Controls\Control3.exe"
echo press any key to kill the program.
pause >nul
taskkill /im "Control1.exe"
taskkill /im "Control2.exe"
taskkill /im "Control3.exe"
注意:taskkill
向应用程序发送终止信号。如果它不能通过关闭自身正确响应,您可以使用/f
开关强制关闭它。批处理解析器逐行工作<代码>&
用于在一行中写入两个命令。因此,用&
结束一行是没有意义的
为了便于阅读,应限制和的使用
cd
应与/d
开关一起使用,以便能够切换到另一个驱动器
start
将引用的第一个参数作为窗口标题,因此为其指定一个伪标题
start
有一个/d
参数来设置工作文件夹,因此您根本不需要cd
:
因此,批处理文件简化为:
@echo off
start "" /d "D:\Controls\" "D:\HW_Controls\Control1.exe"
start "" /d "D:\Controls\" "D:\HW_Controls\Control2.exe"
start "" /d "D:\Controls\" "D:\HW_Controls\Control3.exe"
echo press any key to kill the program.
pause >nul
taskkill /im "Control1.exe"
taskkill /im "Control2.exe"
taskkill /im "Control3.exe"
注意:taskkill
向应用程序发送终止信号。如果它没有通过关闭自身来正确响应,您可以使用/f
开关强制关闭它。我不确定这是否相关,但我尝试在命令提示符下运行它,而不是在Windows图标中运行,运行批处理文件时,它会显示“当前目录无效”。但是我可以cd
进入应用程序可执行字符串中列出的应用程序目录。请重新读取。这是开始“title”/d=“
”。您只启动了“title”/d”“
,然后得到了“当前目录(d:\…\…..EXE
)无效-因为它不是目录。当然..很抱歉,不敢相信我错过了。谢谢。我不确定这是否相关,但我尝试在命令提示符下运行它,而不是在Windows图标中运行,运行批处理文件时,它会显示“当前目录无效”。“。但是我可以cd
进入应用程序可执行字符串中列出的应用程序目录。请重新读取。这是开始“title”/d=“
”。您只执行了启动“title”/d”“
,因此得到了“当前目录(d:\…\…..EXE
)无效-因为它不是目录。当然..抱歉,不敢相信我错过了。谢谢。