@echo off
set xp=Версия 5.1.2600]
for /f "delims=[ tokens=2 usebackq" %%i in (`cmd.exe /c ver`) do set VERSION=%%i
if /i "%version%" == "%xp%" (
echo here!
echo ...
echo here!!!
)
---
, причём в OEM - кодировке (!).
Собсно чтобы сделать общий случай достаточно набрать статистику по cmd.exe /c ver на разных тазах
Если на 2к не хавает usebackq и не работает, то:
...
cmd.exe /c ver >tmp.tmp
for /f "delims=[ tokens=2" %%i in (tmp.tmp) do set VERSION=%%i
if /i "%version%" == "%xp%" (
...
del tmp.tmp
---
еще вариант: [upd]20.05.08 13:51 Автор: Den <Денис Т.> Статус: The Elderman Отредактировано 20.05.08 18:58 Количество правок: 1
@echo off
for /f "eol=] tokens=2 delims=[]" %%i in ('ver') do for /f "tokens=2,3 delims=. " %%j in ("%%i") do set winver=%%j.%%k
if "%winver%"=="5.00" echo MS Windows 2000
if "%winver%"=="5.1" echo MS Windows XP
if "%winver%"=="5.2" echo MS Windows 2003
---
Важно: в опции DELIMS второго FOR после точки стоит пробел - он не лишний.
отличный вариант (только для 2000 нужно не 5.0 а 5.00", тогда работает )20.05.08 16:07 Автор: DamNet <Denis Amelin> Статус: Elderman
Почему некорректно?
cmd скрипт выполняется в cmd shell, а ver является командой, встроенной в cmd shell.
Одинарные кавычки указывают на то, что входным параметром для for будет стандартный вывод команды, указанной в одинарных кавычках, тогда как двойные кавычки указывают параметр-строку. Опция usebackq меняет местами использование одинарных и двойных кавычек в команде FOR.
В любом случае, сейчас проверить работоспособность данного скрипта на Win2k не могу, т.к. эта ось доступна мне только дома.
1) for /?20.05.08 17:33 Автор: Ustin <Ustin> Статус: Elderman Отредактировано 20.05.08 17:34 Количество правок: 1
usebackq - применение новой семантики, при которой строки,
заключенные в обратные кавычки, выполняются как
команды, строки, заключенные в прямые одиночные
кавычки, являются строкой литералов команды, а
строки, заключенные в двойные кавычки, используются
для выделения имен файлов в списках имен файлов
---
2) есть подозрение, что в 2k нет этой самой новой семантики
Проверил, на 2К работает21.05.08 11:44 Автор: LOnG <LOnG> Статус: Member