【问题标题】:Batch file:- Detect windows version and run exe file批处理文件:- 检测 windows 版本并运行 exe 文件
【发布时间】:2017-05-04 07:08:38
【问题描述】:

我想从批处理中检测 windows 版本并根据结果启动 exe 文件

示例代码不起作用

@echo off
setlocal
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
if "%version%" geq "6.2" goto netfx_4
if "%version%" == "6.1" goto netfx_35
if "%version%" == "6.0" goto netfx_35

:netfx_35
 start "C:\Users\Ankur\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk"
exit 1
goto :EOF

:netfx_4
start "C:\Users\Ankur\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk"
exit 1
goto :EOF

endlocal

为了在 exe 的位置上进行测试,我启动记事本文件

但此代码不起作用。

【问题讨论】:

    标签: windows batch-file command-line exe


    【解决方案1】:

    >= 是无效的比较运算符。试试geq(其他是equneqlssleqgtr

    【讨论】:

    • 嗨,我更新了代码,但同样的结果在打开 cmd 时不起作用
    • 请解释发生了什么。 not working 的意思是“没有按照我的预期做”——它做了什么? “刚刚打开 cmd” - 不知道你在这里的意思。 exit 将退出 cmd - 如果您只是想返回错误级别,请使用 exit /b errornumber 将执行 .lnk 在您的机器上运行可执行文件(就个人而言,我使用 notepad 可能在您的 path ) 为您返回什么版本?我的会返回10.0,它小于您的任何测试,因为比较是作为字符串执行的,1 小于6
    • 抱歉问题exe应该在同一个位置
    【解决方案2】:
    @echo off
    setlocal
    for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
    if "%version%" geq "6.2" goto netfx_4
    if "%version%" == "6.1" goto netfx_35
    if "%version%" == "6.0" goto netfx_35
    
    :netfx_35
     start start "" name.exe
    exit 1
    goto :EOF
    
    :netfx_4
    start "" name.exe
    exit 1
    goto :EOF
    
    endlocal
    

    注意:- EXE 应该在批处理文件的同一位置

    【讨论】:

      【解决方案3】:

      由于您正在寻找的版本是使用 WMIC 的操作系统,我会沿着这条路走,(尤其是ver 的输出在技术上不是操作系统版本)

      @ECHO OFF
      
      FOR /F "SKIP=1 TOKENS=1-2 DELIMS=." %%A IN ('WMIC OS GET VERSION'
      ) DO FOR %%C IN (%%A%%B) DO IF %%C GEQ 62 GOTO :netfx_4
      
      :netfx_35
      START "" "%AppData%\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad35.lnk"
      GOTO :EOF
      
      :netfx_4
      START "" "%AppData%\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad4.lnk"
      GOTO :EOF
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多