Set /p choice="(Вв
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
call :GetSystemVersion "OSVer" "Core" "Build" "Family" "EnvironCore" "Validation"
:: Подтверждение правильности определения версии системы
:Validation
echo Версия ОС: %OSVer%
echo Рязрядность ОС: %Core%
echo Сборка: %Build%
echo Семейство: %Family%
echo Разрядность среды запуска Batch: %EnvironCore%
Echo.
echo.
echo.
Echo Операционная система определена верно?
echo.
if %Family%==Vista (
set choice=
Set /p choice="(Введите Y если верно и N если не верно затем нажмите ENTER) "
if not defined choice goto menu
if "%choice%"=="Y"
if "%choice%"=="N"
Echo.
cls
Echo ═Вы выбрали неверное значение=
Echo.
Echo Выберите Y для подтверждения или N для отказа.
Echo.
Echo ==============================================
Goto Validation) else (
set m.msg=^
ДА - Версия системы определена верно^&^
НЕТ - Выход
cmd /U /C echo Wscript.Echo Msgbox^(replace^(Wscript.Arguments^(0^),"&",vbLF^),67,"Подтверждение выбора"^)>"msgbox.vbs"
for /f %%a in ('cscript "msgbox.vbs" "%m.msg%"^& del "msgbox.vbs"') do set err=%%a
if "%err%"=="2" goto Exite
if "%err%"=="6" goto XP
if "%err%"=="7" goto Exite
goto Exite
) )
pause
Exit /B
Set /p "choice=(Вв"
Команда оборвана. Должно быть что-нибуть - переход или открывающая скоба.if "%choice%"=="N"
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
call :GetSystemVersion "OSVer" "Core" "Build" "Family" "EnvironCore"
:Menu
cls
:Validation
:: Подтверждение правильности определения версии системы
echo Версия ОС: %OSVer%
echo Рязрядность ОС: %Core%
echo Сборка: %Build%
echo Семейство: %Family%
echo Разрядность среды запуска Batch: %EnvironCore%
Echo.
echo.
Echo Операционная система определена верно?
echo.
:Again
set choice=
Set /p choice="(Введите Y если верно и N если не верно затем нажмите ENTER) "
if not defined choice goto menu
if /i "%choice%"=="Y" goto Exite
if /i "%choice%"=="N" (
Echo.
Echo ═Вы выбрали неверное значение=
Echo.
Goto Again
) else (
set m.msg=^
ДА - Версия системы определена верно^&^
НЕТ - Выход
cmd /U /C echo Wscript.Echo Msgbox^(replace^(Wscript.Arguments^(0^),"&",vbLF^),67,"Подтверждение выбора"^)>"msgbox.vbs"
for /f %%a in ('cscript "msgbox.vbs" "!m.msg!"^& del "msgbox.vbs"') do set err=%%a
if "!err!"=="2" goto Exite
if "!err!"=="6" goto XP
if "!err!"=="7" goto Exite
goto Exite
)
:Exite
:XP
pause
Exit /B
:GetSystemVersion [OSVersion] [OSCore] [OSBuild] [OSFamily] [EnvironmentCore]
Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x32
set %~5=x32& if "%xOS%"=="x64" echo "%PROGRAMFILES%" |>nul find "x86" || set %~5=x64
set "%~2=%xOS%"
set _key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "CurrentBuildNumber"^|Find "CurrentBuildNumber"') do set "%~3=%%~b"
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "CurrentVersion"^|Find "CurrentVersion"') do set "_ver=%%~b"
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "ProductName"^|Find "ProductName"') do set "%~1=%%~b"
if "%_ver:~0,1%"=="6" (set "%~4=Vista") else (set "%~4=NT")
Exit /B
сначала только chois хотел,но вспомнил что++ к чему столько диалогов. Давай что-то одно или Msgbox или Choice.
Да нет,это временное явление.Команда оборвана. Должно быть что-нибуть - переход или открывающая скоба.
Да, но скрипт на этом явлении и остановится -))Да нет,это временное явление.
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
call :GetSystemVersion "OSVer" "Core" "Build" "Family" "EnvironCore"
:: Подтверждение правильности определения версии системы
:Validation
echo Версия ОС: %OSVer%
echo Рязрядность ОС: %Core%
echo Сборка: %Build%
echo Семейство: %Family%
echo Разрядность среды запуска Batch: %EnvironCore%
Echo.
set m.msg=^
Версия системы определена верно? ^&^
cmd /U /C echo Wscript.Echo Msgbox^(replace^(Wscript.Arguments^(0^),"&",vbLF^),67,"Подтверждение выбора"^)>"msgbox.vbs"
for /f %%a in ('cscript "msgbox.vbs" "%m.msg%"^& del "msgbox.vbs"') do set err=%%a
if "%err%"=="2" echo отмена &pause
if "%err%"=="6" echo да &pause
if "%err%"=="7" echo нет &pause
goto Exite
)
pause
Exit /B
:GetSystemVersion [OSVersion] [OSCore] [OSBuild] [OSFamily] [EnvironmentCore]
:: Определить версию ОС
:: %1-исх.Переменная для хранения названия ОС
:: %2-исх.Переменная для хранения разрядности ОС
:: %3-исх.Переменная для хранения версии сборки ОС
:: %4-исх.Переменная, идентифицирующая семейство ОС (9x, NT, Vista)
:: %5-исх.Переменная, идентифицирующая разрядность среды, из-под которой запущен скрипт
Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x32
set %~5=x32& if "%xOS%"=="x64" echo "%PROGRAMFILES%" |>nul find "x86" || set %~5=x64
set "%~2=%xOS%"
set _key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "CurrentBuildNumber"^|Find "CurrentBuildNumber"') do set "%~3=%%~b"
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "CurrentVersion"^|Find "CurrentVersion"') do set "_ver=%%~b"
For /f "tokens=2*" %%a In ('Reg.exe query "%_key%" /v "ProductName"^|Find "ProductName"') do set "%~1=%%~b"
if "%_ver:~0,1%"=="6" (set "%~4=Vista") else (set "%~4=NT")
Exit /B
Батник сохранять в кодировке OEM-866 нужно.И тоже кодировка у меня не верная.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?