【问题标题】:bash regex command equivalent in windows cmd scriptWindows cmd脚本中等效的bash正则表达式命令
【发布时间】:2014-09-01 14:49:47
【问题描述】:

这个 bash 命令的等价物是什么:

[[ $(uname) =~ NT-6.3 ]] && set_win81

在 windows cmd 脚本中?

我想使用类似的东西:

if (ver | findstr /C:"Microsoft Windows [Version 6.3") ( goto :set_win81 )

【问题讨论】:

    标签: windows command


    【解决方案1】:

    这样就足够了。

    ver | findstr /i /c:"Version 6.3" >nul && goto :set_win81
    

    这是我为这项任务准备的一些代码:

    @echo off
    set "windows="
    VER | find  " 4.1." > nul && set windows=W98
    VER | find  " 4.0." > nul && set windows=NT
    VER | find  " 5.0." > nul && set windows=W2K
    VER | find  " 5.1." > nul && set windows=XP
    VER | find  " 5.2." > nul && set windows=XP 64-Bit or Server 2003 or Server 2003 R2 
    VER | find  " 6.0." > nul && set windows=Vista or server 2008
    VER | find  " 6.1." > nul && set windows=Win7 or server 2008 R2
    VER | find  " 6.2." > nul && set windows=Windows 8
    VER | find  " 6.3." > nul && set windows=Server 2012 R2 or Windows 8.1
    if defined windows (
    echo %windows%
    ) else (
    echo unknown operating system
    )
    pause
    

    【讨论】:

    【解决方案2】:

    作为解析ver 输出的替代方法,您可以使用注册表:

    setlocal 
    
    set reg_info=reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion
    for /f "skip=2 tokens=3" %%l in ('%reg_info%') do set win_ver=%%l
    
    if "%win_ver%" equ "6.2" goto :set_win80
    if "%win_ver%" equ "6.3" goto :set_win81
    
    REM etc etc
    

    关键是您可以使用带有一些设置的for /f 循环来解析多行、多列数据,例如reg query 的输出。

    【讨论】:

    • 对于批处理文件,您的 for 循环变量需要在 %l 上增加一个百分比。
    • 绝对。解决了这个问题。
    【解决方案3】:
    @echo off
    setlocal
    :: Get windows Version numbers
    set ver=""
    set con="Microsoft Windows Version 6.3"
    for /f "tokens=2 delims=[]" %%G in ('ver') do set ver=%%G
    echo found version %ver%
    if %%ver EQU %%con (
    goto set_win81)
    
    echo NO win81
    exit/B
    
    :set_win81 
    echo win81
    exit/B
    

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 1970-01-01
      • 2011-10-17
      • 2015-07-15
      相关资源
      最近更新 更多