这段脚本没有运行,我无法理解为什么。
@echo off
ver | findstr /i "5\.1\."
if %ERRORLEVEL% EQU 0 (
set os_ver="xp"
)
ver | findstr /i "6\.1\." > nul
if %ERRORLEVEL% EQU 0 (
set os_ver="7"
)
if %os_ver% == "xp" (
set os_bits="32"
)
if %os_ver% == "7" (
if %PROCESSOR_ARCHITECTURE% == "x86" (
set os_bits="32"
) else (
set os_bits="64"
)
echo %os_bits%
)
pause
尽管如此,它并没有回应任何事情; ECHO已被停止"或者" ECHO被激活"
更新: 我发布了整个代码,因为人们说它正在运行
UPDATE2: 我使用的是Windows 7 64位
答案 0 :(得分:1)
批处理脚本似乎工作正常。如果您的机器不是Windows 7,它将不会回显。
尝试以下方法:
@echo off
set os_ver="unknown!"
set os_bits="unknown!"
ver | findstr "5\.1" > nul
if %ERRORLEVEL% EQU 0 (
set os_ver="xp"
)
ver | findstr "6\.1" > nul
if %ERRORLEVEL% EQU 0 (
set os_ver="7"
)
if %os_ver% == "xp" (
set os_bits="32"
)
if %os_ver% == "7" (
if %PROCESSOR_ARCHITECTURE% == "x86" (
set os_bits="32"
) else (
set os_bits="64"
)
)
echo os_ver = %os_ver%
echo os_bits = %os_bits%
pause
更新:评论者eryksun提供了正确的原因,为什么这个代码工作,而ops即使他不在Windows7上。 (好抓)
在OP的版本中,echo%os_bits%在设置os_bits的同一命令中执行。在解析和调度命令时,os_bits不存在(除非它已经设置),所以它只是执行echo,它打印echo是打开还是关闭。 - eryksun
答案 1 :(得分:0)
试试这个:
@echo off
setlocal
if "%PROCESSOR_ARCHITECTURE%" equ "x86" (
set os_bits="32"
) else (
set os_bits="64"
)
echo %os_bits%