我有XP和Win7 PC。在我的批处理文件中,我必须提供可执行文件的路径。为了区分操作系统,我写了这个批处理文件...但它没有用,给了我一个错误。
@echo off
if EXISTS %ProgramFiles(x86)% (
set PATH="c:\Program Files (x86)\McAfee\VirusScan Enterprise\"
) else (
set PATH="c:\Program Files\McAfee\VirusScan Enterprise\"
)
echo %PATH%
REM pushd %PATH%
错误是:C:\Program was unexpected at this time.
我的批次出了什么问题?
答案 0 :(得分:1)
更好地使用此批处理代码:
@echo off
if exist "%ProgramFiles(x86)%" (
set "PATH=%PATH%;%ProgramFiles(x86)%\McAfee\VirusScan Enterprise"
) else (
set "PATH=%PATH%;%ProgramFiles%\McAfee\VirusScan Enterprise"
)
echo %PATH%
REM pushd %PATH%
批处理代码中存在多个错误。
存在而不是 EXISTS 。此关键字的末尾没有 s 。
缺少双引号,因为程序文件目录通常包含空格。
要添加的目录应附加到 PATH ,而不是替换环境变量路径的本地副本中的所有目录。
在Windows XP上,程序文件的目录名取决于操作系统语言。因此,在将目录附加到路径时,最好还使用环境变量。
目录被添加到 PATH ,始终没有双引号,并且始终没有反斜杠。
也可以只检查环境变量 ProgramFiles(x86),因为Windows x86上不存在此变量。
@echo off
if "%ProgramFiles(x86)%"=="" (
set "PATH=%PATH%;%ProgramFiles%\McAfee\VirusScan Enterprise"
) else (
set "PATH=%PATH%;%ProgramFiles(x86)%\McAfee\VirusScan Enterprise"
)
echo %PATH%
答案 1 :(得分:0)
@echo off
if EXISTS "%ProgramFiles(x86)%" (
set PATH_="c:\Program Files (x86)\McAfee\VirusScan Enterprise\"
) else (
set PATH_="c:\Program Files\McAfee\VirusScan Enterprise\"
)
echo %PATH_%
REM pushd %PATH_%
尝试%ProgramFiles(x86)%