【发布时间】:2015-08-21 01:39:31
【问题描述】:
我有一个执行 Windows 系统分析的批处理脚本。但是为了收集浏览器信息,我必须检查是否安装了浏览器。所有浏览器的路径取决于系统架构(Program Files 或 Program Files (x86))。所以我还要检查系统是 32 位还是 64 位,并将路径存储在变量 %program_files% 中。但是,虽然我的电脑中有谷歌浏览器,但程序会打印一个错误:“Chrome 似乎没有安装”。 下面是描述的代码:
Setlocal EnabledDelayedExpansion
Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry% > %usbpath%CheckOS.txt
Find /i "x86" < %usbpath%CheckOS.txt > %usbpath%StringCheck.txt
IF %ERRORLEVEL% == 0 (
SET PROGRAM_FILES=%PROGRAMFILES%
) ELSE (
SET "PROGRAM_FILES= %PROGRAMFILES(x86)%"
)
ECHO Check Google Chrome installation
IF NOT EXIST "!PROGRAM_FILES!\Google\Chrome\" GOTO SKIPG_CHROME
ECHO Running Google ChromeCacheView
:SKIPG_CHROME
ECHO Google Chrome doesn't seem to be installed. ChromeCacheView skipped.
【问题讨论】:
-
不应该
IF NOT EXIST "!PROGRAM_FILES!\...行实际上是%而不是!?所以IF NOT EXIST "%PROGRAM_FILES%\.... -
我试过了,但由于路径 Program Files (x86) 的括号,它不起作用
-
你少了一个“%”,
SET "PROGRAM_FILES= %PROGRAMFILES(x86)%" -
我的错...对不起!我忘了把它写下来。我的代码中有它。不是这样的!
-
无效的
Setlocal参数,Enabled应该是Enable
标签: batch-file