我已经在这个论坛上阅读了过去6小时内其他人的相关帖子,这些帖子与我的问题很接近但是还没有设法找到解决方案。
我希望制作批处理文件以检查目录是否存在,如果存在,则在该目录中执行exe文件。如果该目录不存在,我希望它检查同一个exe文件的另一个目录并执行它。此外,我需要能够使用某些参数执行exe文件。
例如:
要检查的目录号1:C:\ Program Files \ Test \(如果存在)执行Test.exe
如果这不存在..
要检查的目录号2:C:\ Program Files \ Test2 \如果存在则执行Test.exe
希望信息充足,提前谢谢!
答案 0 :(得分:0)
if exist c:\windows echo true
这将匹配文件或文件夹。查看是否有文件夹
pushd c:\windows&if not errorlevel 1 echo Is a folder
但为什么不直接而不是愚蠢地测试事物。
C:\windows\notepad.exe&if not errorlevel 1 c:\windows\system32\notepad.exe
或
c:\windows\notepad.exe||c:\windows\system32\notepad.exe||Echo Neither File Found
& seperates commands on a line.
&& executes this command only if previous command's errorlevel is 0.
|| (not used above) executes this command only if previous command's errorlevel is NOT 0
> output to a file
>> append output to a file
< input from a file
| output of one command into the input of another command
^ escapes any of the above, including itself, if needed to be passed to a program
答案 1 :(得分:0)
如果要检查特定路径,请尝试其他方法。
@echo off
Set path1=C:\Program Files\Test
Set path2=C:\Program Files\Test2
setlocal enabledelayedexpansion
for /r c: %%a in (*) do (
call :check "%%~pa"
)
:check
If "%~1"=="!path1!" (
Call "!path1!\test.exe"
)
If "%~1"=="!path2!" (
Call "!path2!\test.exe"
)
答案 2 :(得分:0)
测试一下:
@echo off
if exist "C:\Program Files\Test\" (
cd /d "C:\Program Files\Test\"
"text.exe" param1 param2
) else (
if exist "C:\Program Files\Test2\" cd /d "C:\Program Files\Test2\" & "text.exe" param1 param2
)
pause