1

Тема: CMD/BAT: Ветвление в пакетнике по номеру версии Win

Скрипт основан на разборе выходных данных консольной команды VER средствами командной строки:

::::test_OS.cmd
@ FOR /F "tokens=1,2* delims=[]" %%a in ('ver') DO @ (
    FOR /F "tokens=1,2" %%i in ("%%b") DO @ (
        FOR /F "tokens=1 delims=." %%v IN ("%%j") DO @ ( 
            Echo ver # %%v
            IF %%v==6 Goto :OS_Win7 
        ) 
    )
)

:OS_WINXP
@ echo _____xp____
::: [run XP-app...]
@ goto :TheEND

:OS_Win7
@ echo _____win7____
::: [run Win7-app...]

 :TheEND
@Echo.
@Pause

Понадобилось в батнике при работе под Win7 запускать иное, чем под WinXP, приложение.
Протестировано под XP rus/en и Win7 en.
Может кому пригодится еще, можете добавить в коллецию CMD-шных идей.

WBR. Roman

2

Re: CMD/BAT: Ветвление в пакетнике по номеру версии Win

Немного переделал под свой зоопарк

::::test_OS.cmd
@ FOR /F "tokens=1,2* delims=[]" %%a in ('ver') DO @ (
        Echo.
        Echo %%a
    FOR /F "tokens=1,2" %%i in ("%%b") DO @ (
        FOR /F "tokens=1,2* delims=." %%v IN ("%%j") DO @ ( 
                Echo ver %%v.%%w
            IF %%v==6 (
                Goto :OS_Win7 
            ) ELSE ( 
                IF %%w==1 Goto :OS_WINXP
                IF %%w==2 Goto :OS_WIN2003
            )
        ) 
    )
)


:OS_WIN2K
::: [run 2K-app...]
@ goto :TheEND

:OS_WINXP
::: [run XP-app...]
@ goto :TheEND

:OS_WIN2003
::: [run XP-app...]
@ goto :TheEND

:OS_Win7
::: [run Win7-app...]

 :TheEND
@Echo.
@Pause