bat批处理命令打开程序问题?

情况是这样的,bat命令里面,我用start 1.exe打开程序1,
如果有程序1,那么这个命令结束。
如果说电脑没有程序1,那么就继续打开程序2,
请问这样的判断,应该怎么写命令?

@echo off & title 打开程序 By 依梦琴瑶
::设置第一个程序
set Fst=1.exe

::设置第二个程序
set Scd=2.exe

if exist "%Fst%" (
start "" "%Fst%"
) else (
if exist "%Scd%" (
start "" "%Scd%"
) else (
echo 一和二的程序都不存在
)
)
exit

以下代码不属于主代码,可以不用执行。
@echo off & title 友情执行
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit追问

完美,刚开始不行,因为我稍微改动了出错了,还以为这代码有错误呢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-17
start D:\Softwares\BaiduYun\baiduyun.exe 这个命令是启动程序之后返回bat;
去掉start之后:
D:\Softwares\BaiduYun\baiduyun.exe
这个命令在启动程序之后一直等待程序结束,程序结束之后才会返回。追问

我想要的是,运行bat之后,首先打开第一个程序,
如果第一个程序打开了,那么这个bat就结束了,
如果打不开,或者没有第一个程序,
那么继续打开第二个程序,这样的意思

第2个回答  2019-10-17
@echo off
rem 根据一个指定程序是否打开或运行执行不同操作
set #=Any question&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$% %z%
cd /d "%~dp0"
set "exefile1=D:\xxx\1.exe"
set "exefile2=D:\xxx\2.exe"
if exist "%exefile1%" (
    start "" "%exefile1%"
    >nul ping /n 3 0
    for /f "delims=" %%a in ("%exefile1%") do (
        tasklist /fi "IMAGENAME eq %%~nxa"|find /i "%%~nxa"&&(goto end)
        echo;"%exefile1%" not run
    )
) else echo;"%exefile1%" not found
if exist "%exefile2%" (
    start "" "%exefile2%"
) else echo;"%exefile2%" not found
:end
echo;%#% +%$%%$% %z%
pause
exit

相似回答