1

如何修改以下批处理文件以同时检查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

4 回答 4

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
于 2013-05-15T08:27:00.420 回答
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当两个目录都存在时才会这样做。

于 2013-05-15T08:26:52.170 回答
1

试试这个:

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

如果您测试文件夹,最好在末尾加上反斜杠。否则,如果您有一个具有此名称的文件,这也可能是正确的。

于 2013-05-15T08:42:31.477 回答
0

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

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

"%ProgFiles86Root%\name of program" "arguments, etc."
于 2013-05-15T08:30:12.833 回答