批处理文件目录和exe文件

时间:2014-07-24 00:39:25

标签: windows batch-file

我已经在这个论坛上阅读了过去6小时内其他人的相关帖子,这些帖子与我的问题很接近但是还没有设法找到解决方案。

我希望制作批处理文件以检查目录是否存在,如果存在,则在该目录中执行exe文件。如果该目录不存在,我希望它检查同一个exe文件的另一个目录并执行它。此外,我需要能够使用某些参数执行exe文件。

例如:

要检查的目录号1:C:\ Program Files \ Test \(如果存在)执行Test.exe

如果这不存在..

要检查的目录号2:C:\ Program Files \ Test2 \如果存在则执行Test.exe

希望信息充足,提前谢谢!

3 个答案:

答案 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