Как создать cmd (bat) скрипт на Windows 10, который выводит меню с вариантами схем питания (энергосберегающая, сбалансированная, высокопроизводительная), дает пользователю время для выбора, автоматически выбирает опцию по умолчанию, если ничего не выбрано, печатает выбранный вариант и завершает работу через несколько секунд, и, если возможно, отображает варианты меню разными цветами? Как правильно настроить вывод русского текста в скрипте? Как организовать выбор нужной схемы питания после отображения меню?
Для создания cmd скрипта с меню в Windows 10, можно использовать следующий код: ```batch @echo off title Выбор схемы питания echo Выберите схему питания: echo 1. Энергосберегающая echo 2. Сбалансированная echo 3. Высокопроизводительная choice /c 123 /n /m "Выберите схему питания (по умолчанию 1):" if errorlevel 3 set scheme=Высокопроизводительная if errorlevel 2 set scheme=Сбалансированная if errorlevel 1 set scheme=Энергосберегающая color 0A echo. echo Вы выбрали схему питания: %scheme% timeout /t 5 >nul ``` Для вывода русского текста в cmd скрипте, можно задать кодировку UTF-8 и использовать специальные символы ANSI для управления цветами. Например: ```batch @echo off chcp 65001 >nul color 0A echo Пример текста с цветом. pause >nul ``` Для организации выбора нужной схемы питания после отображения меню, можно использовать команду `choice`, которая позволяет пользователю выбирать опцию. После этого можно проверить выбор пользователя с помощью `if errorlevel` и присвоить соответствующее значение переменной `scheme`. Надеюсь, это поможет вам создать требуемый скрипт с меню и цветным текстом на cmd. Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать.
1(важно) создаете текстовый файл и сохраняете его в формате UTF-8 (без BOM)
2 открываете консоль win+R вводите cmd и жмете enter
3 вводите команду powercfg /L - получите список всех схем питания и самое главное - их идентификаторы
4 копируете код отсюда в текстовый файл и заменяете в строках сPowercfg -SETACTIVE
айдишник на свои, полученные из предыдущего шага
@echo off chcp 65001>nul call :ECHO " --= Выбор системы питания =--" 0B echo. call :ECHO " E - ЭНЕРГОСБЕРЕГАЮЩАЯ" 0E echo. call :ECHO " S - СБАЛАНСИРОВАННАЯ" 0A echo. call :ECHO " V - ВЫСОКОПРОИЗВОДИТЕЛЬНАЯ" 0D echo. call :ECHO " -----------------------------" 0B echo. call :ECHO " по умолчанию = " 0B call :ECHO " ВЫСОКОПРОИЗВОДИТЕЛЬНАЯ" 0C echo. call :ECHO " время для выбора " 0B call :ECHO "7сек" 0C echo. CHOICE /T 7 /C ESV /D v /M "Сделайте выбор" if %errorlevel% == 1 goto energo if %errorlevel% == 2 goto sbalans if %errorlevel% == 3 goto visoko :energo call :ECHO " -----------------------------" 0B echo. call :ECHO " выбрана" 0B call :ECHO " ЭНЕРГОСБЕРЕГАЮЩАЯ" 0E Powercfg -SETACTIVE a1841308-3541-4fab-bc81-f71556f20b4a goto saz :sbalans call :ECHO " -----------------------------" 0B echo. call :ECHO " выбрана" 0B call :ECHO " СБАЛАНСИРОВАННАЯ" 0A Powercfg -SETACTIVE 381b4222-f694-41f0-9685-ff5bb260df2e goto saz :visoko call :ECHO " -----------------------------" 0B echo. call :ECHO " выбрана" 0B call :ECHO " ВЫСОКОПРОИЗВОДИТЕЛЬНАЯ" 0D Powercfg -SETACTIVE 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c :saz echo. echo " Завершение программы через 3 сек" >nul timeout/nobreak 3 chcp 866>nul exit /b :ECHO chcp 866>nul for /f %%i in ('"prompt $h& for %%i in (.) do rem"') do (set Z=%%i) pushd "%TEMP%" && ( <nul>"%~1^" set /p="%Z%%Z% %Z%%Z%" findstr /a:%2 . "%~1^*" del "%~1^" popd ) chcp 65001>nul exit /b
В этой строкеCHOICE /T 7 /C ESV /D v /M "Сделайте выбор"
изменяйте на какие буквы будет реакция выбора 'ESV', а между /D и /M - какой выбор по умолчанию.