Вы должны войти, чтобы создавать сообщения и темы.

Нужно написать bat-ник на несколько команд

Доброго дня, нужен bat-ник который определит версию и редакцию windows и выполнит несколько команд.
Либо аналог конструкции case esac в linux, отобразить список действий и попросить юзера выбрать в списке номер действия и собственно выполнить команды.
Команды я допишу сам( не могу написать тут, на форуме нельзя), просто оставьте там ::комментарий 🙂 спасибо.

John, привет
Могу предложить такой вариант.

Лайкнул John
John
Цитата: Леонид от 17.01.2023, 03:31

John, привет
Могу предложить такой вариант.

неплохой вариант, спасибо. но ver не выводит редакцию windows, допустим уберем ver и оставим список, как выполнить в скобках несколько команд подряд? в linux это после команды поставить знак ; а в cmd есть такой знак?

John, добрый день.
Скопировано& — Скопированокоманда 1 & команда 2
Поочерёдное выполнение всех команд.

Скопировано&& — Скопированокоманда 1 && команда 2
Поочерёдное выполнение всех команд, при условии, что предыдущая команда была отработана без ошибки.

Лайкнул John
John
Лучший способ помочь себе — помогать другим.
Приветствую.
:Start
@echo off&setlocal EnableDelayedExpansion&Title Choice
for /f "tokens=1* delims==" %%A IN ('wmic os get caption /Format:List ^| FIND "="') DO set "Redaction=%%~B"
for /f "tokens=4 delims=[] " %%v in ('ver') do set "VersionOS=%%v%"
for /f "tokens=2*" %%A IN ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "DisplayVersion" 2^>nul ') do (set Vers=%%B)
echo %Redaction% ^| %VersionOS% ^| (%Vers%)&echo.

echo 1 - Калькулятор
echo 2 - Блокнот
echo 3 - Диспетчер задач

set input=&set /p input=
if not defined input ( echo Нет ввода&&timeout /t 2 >nul&&endlocal&&exit)
if "%input%"=="1" ( calc&cls&goto Start)
if "%input%"=="2" ( notepad&cls&goto Start)
if "%input%"=="3" ( taskmgr&cls&goto Start)

) else (
echo Такого номера не существует & timeout /t 2 >nul & endlocal & cls & goto Start
)
Лайкнул John
John

Благодарю за ответы. Автоматически не получилось, но удалось сделать выборочно, юзер сам тыкнет на циферку и все сработает 🙂