批处理文件帮助请:如果存在C:\ Program Files \ Adob​​e或C:\ Program Files(x86)\ Adob​​e

时间:2013-05-15 08:17:13

标签: if-statement batch-file

如何修改以下批处理文件以检查C:\Program Files\AdobeC:\Program Files (x86)\Adobe

此代码仅查找C:\Program Files\Adobe

@echo off
if exist "C:\Program Files\Adobe" goto end
echo %computername% > \\server001\share\%computername%.txt
:end

我尝试了以下但不起作用:

@echo off
If exist "C:\Program Files\Adobe" If exist "C:\Program Files (x86)\Adobe" goto end
echo %computername% > \\server001\share\%computername%.txt
:end

非常感谢您的帮助,谢谢!

4 个答案:

答案 0 :(得分:2)

为什么不这样?

@echo off
If exist "C:\Program Files\Adobe"       goto end
If exist "C:\Program Files (x86)\Adobe" goto end
echo %computername% > \\server001\share\%computername%.txt
:end

答案 1 :(得分:1)

@echo off
if exist "C:\Program Files\Adobe" goto end
if exist "C:\Program Files (x86)\Adobe" goto end
echo %computername% > \\server001\share\%computername%.txt
:end

这是最简单的方法。如果存在任一个或两个目录,将goto end

如果您想要同时检查两者:

@echo off
if exist "C:\Program Files\Adobe" (
  if exist "C:\Program Files (x86)\Adobe" (
    goto end
  )
)
echo %computername% > \\server001\share\%computername%.txt
:end

如果两个目录都存在,则只会goto end

答案 2 :(得分:1)

试试这个:

@echo off&setlocal 
If exist "C:\Program Files\Adobe\" (goto:end) else If exist "C:\Program Files (x86)\Adobe\" goto:end

如果你测试文件夹,最好最后加一个反斜杠。否则,如果您有一个具有此名称的文件,也可以这样。

答案 3 :(得分:0)

在这两种操作系统中绝对没有一个命令可以工作。你必须检查这两个地方:

SET ProgFiles86Root=%ProgramFiles(x86)%
IF NOT "%ProgFiles86Root%"=="" GOTO win64
SET ProgFiles86Root=%ProgramFiles%
:win64

"%ProgFiles86Root%\name of program" "arguments, etc."