Выбор да нет в bat файле
В Bash есть несколько команд, который могут позволить составить сценарий, в котором можно описать несколько действий и предоставить пользователю ввести номер нужной позици и тогда выполняются определенные команды, если пользователь ничего не выбрал, то подставляется номер по умолчанию и выполняются команды соответствующие данному номеру.
Как это можно осуществить в командной строке Windows .
Приведите пожалуйста примеры или статьи с подробным разбором особенности таких команд в BATCH ( без использования каких-либо других языков или установки утилит)
Спасибо.
Phoenix
В Bash есть несколько команд, который могут позволить составить сценарий, в котором можно описать несколько действий и предоставить пользователю ввести номер нужной позици и тогда выполняются определенные команды, если пользователь ничего не выбрал, то подставляется номер по умолчанию и выполняются команды соответствующие данному номеру.
alex-s
Пользователь
Dragokas
Very kind Developer
Намёка на статью у меня нет, но достаточный минимум описан в справке choice /?
Доступна на ОС Vista и выше.
CHOICE [/C список] [/N] [/CS] [/T тайм-аут /D элемент] [/M текст]
Описание.
Эта программа позволяет выбирать элемент из списка элементов
и возвращает индекс выбранного элемента.
Параметры:
/C список Создаваемый список выбираемых элементов.
Список по умолчанию "YN".
/CS Включение учета регистра при выборе элементов.
По умолчание в программе регистр символов не учитывается.
/T тайм-аут Число секунд перед выбором элемента по умолчанию.
Допустимыми являются значения от 0 до 9999.
Если указан 0, отсутствует пауза перед выбором
элемента по умолчанию.
/D элемент Элемент, выбираемый по умолчанию через nnnn секунд.
Символ должен присутствовать в наборе элементов
в параметре /C; значение nnnn задается в параметре /T.
/? Вывод справки по использованию.
Примечание
Переменная среды ERRORLEVEL получает значение индекса
клавиши, соответствующей выбранному элементу. Первый элемент
в списке возвращает значение 1, второй - 2 и т.д.
Если пользователь нажимает клавишу, не соответствующую допустимому
выбору, подается звуковой сигнал. Если обнаруживается ошибка,
возвращается значение ERRORLEVEL 255. Если нажимаются клавиши
CTRL+BREAK или CTRL+C, программа возвращает значение ERRORLEVEL 0.
При использовании параметров ERRORLEVEL в пакетной программе их
следует перечислять по убыванию.
Примеры:
CHOICE /?
CHOICE /C YNC /M "Y - Да, N - Нет, C - Отмена."
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "a" для выбора параметра 1 и "b" для выбора параметра 2.
CHOICE /C ab /N /M "a" для выбора параметра 1 и "b" для выбора параметра 2.
По истечению 5 секунд будет автоматически выбран вариант Y.
Порядковый номер выбранной буквы будет сохранён в виде кода возврата ошибки (errorlevel).
Учтите, что регистр символов (если не указан ключ /CS) игнорируется только в английском алфавите.
В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту.
Команда контент-менеджеров wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества.
Из данной статьи вы узнаете, как написать и сохранить простейший пакетный файл (батник) на компьютере под управлением Windows. Пакетный файл содержит ряд команд DOS (операционная система) и обычно используется для автоматизации часто выполняемых задач, таких как перемещение файлов. Чтобы создать батник, сложное программное обеспечение не нужно — вам понадобится только текстовый редактор Блокнот.
Откройте Блокнот. В Блокноте можно написать программу в виде текстового файла, а затем сохранить его как пакетный файл. Чтобы открыть Блокнот, откройте меню «Пуск»
- Блокнот используется для преобразования текстовых файлов в пакетные, но код пакетного файла можно написать в любом текстовом редакторе.
- ECHO : выводит текст на экран;
- @ECHO OFF : скрывает отображаемый текст;
- START : запускает файл с приложением;
- REM : добавляет строку с комментариями;
- MKDIR/RMDIR : создает и удаляет каталоги;
- DEL : удаляет файлы;
- COPY : копирует файлы;
- XCOPY : копирует файлы с дополнительными параметрами;
- FOR/IN/DO : определяет файлы;
- TITLE : редактирует заголовок окна. [1] X Источник информации
- Эта программа скопирует файлы из папки «original» в папку «backupfolder». Эти папки можно заменить другими (с соответствующими путями к папкам). /m указывает, что будут скопированы только измененные файлы; /e указывает, что будут скопированы все подпапки (которые есть в указанной папке); /y выводит на экран запрос на перезапись файла.
Закончите вводить программу пакетного файла. Когда вы завершите вводить и редактировать программу пакетного файла, сохраните его в качестве исполняемого файла.
Щелкните по Файл . Эта опция находится в верхнем левом углу окна Блокнота. Откроется выпадающее меню.
Нажмите Сохранить как . Эта опция находится в выпадающем меню «Файл». Откроется окно «Сохранить как».
- Например, если пакетный файл для резервного копирования будет называться «backup», введите backup.bat .
Щелкните по Все файлы . Эта опция находится в выпадающем меню. Так вы сможете сохранить файл с указанным расширением (в данном случае с расширением .bat).
Укажите папку, в которой будет храниться пакетный файл. Для этого щелкните по нужной папке (например, по «Рабочий стол») в левой части окна.
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 12 человек(а).
Вы действительно хороши в программировании командных файлов, лишь не знаете, как сделать меню с выбором "да", "нет" или Выбор 1, 2 или 3? Вы пришли в нужное место!
Введите следующие команды. После каждой нажимайте enter. Все, что в скобках, вводить НЕ надо, это примечания с пояснениями.
@echo off (Эта команда 'спрячет' возможность ввода команд – по желанию, но мы рекомендуем использовать ее)
cls (Спрячет все, что выше, – по желанию, но если вы хотите, чтобы все выглядело упорядоченным – рекомендуем)
- Для более подробной информации введите в командной строке /help.
- Вы можете поменять :choice1 на любое другое слово, но придерживайтесь его до конца файла.
- Для более подробной информации введите в командной строке choice /?.
- Редактор команд в командной строке не работает в Windows 8. Эти команды доступны для windows XP/Vista/Windows 7.
- Если вы не уверены в том, что делаете, не используйте команды.
- Команды, которые вы используете бездумно, могут повредить ваш компьютер.
Была ли эта статья полезной?
Куки помогают сделать WikiHow лучше. Продолжая использовать наш сайт, вы соглашаетесь с нашими куки правилами.
Конфигурация компьютера | |
Процессор: AMD Ryzen 5 3500X 6-Core Processor, 3593 МГц | |
Материнская плата: Gigabyte B450M DS3H-CF | |
Память: 2 x Kingston HyperX FURY Black DDR4, 8,00 ГБ | |
HDD: TOSHIBA DT01ACA200 ATA Device 1,82 ТБ, Samsung SSD 860 PRO 256GB | |
Видеокарта: NVIDIA GeForce GTX 1060 3GB | |
Звук: Realtek High Definition Audio | |
ОС: Windows 10 Pro x64 |
Мне нужно сделать меню в bat-файле:
Какую операцию Вы хотите выполнить?
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Конфигурация компьютера | |
Процессор: AMD Ryzen 5 3500X 6-Core Processor, 3593 МГц | |
Материнская плата: Gigabyte B450M DS3H-CF | |
Память: 2 x Kingston HyperX FURY Black DDR4, 8,00 ГБ | |
HDD: TOSHIBA DT01ACA200 ATA Device 1,82 ТБ, Samsung SSD 860 PRO 256GB | |
Видеокарта: NVIDIA GeForce GTX 1060 3GB | |
Звук: Realtek High Definition Audio | |
ОС: Windows 10 Pro x64 |
Просто я в написании скриптов очень плохо разбираюсь.
Поскольку у Вас много пунктов, проще будет оформить их вывод посредством «echo». Вот примерная болванка (не проверялось):
Последний раз редактировалось Iska, 12-03-2014 в 13:22 . Причина: Убрано «/d 7» как ошибочное в данном случае
Конфигурация компьютера | |
Процессор: AMD Ryzen 5 3500X 6-Core Processor, 3593 МГц | |
Материнская плата: Gigabyte B450M DS3H-CF | |
Память: 2 x Kingston HyperX FURY Black DDR4, 8,00 ГБ | |
HDD: TOSHIBA DT01ACA200 ATA Device 1,82 ТБ, Samsung SSD 860 PRO 256GB | |
Видеокарта: NVIDIA GeForce GTX 1060 3GB | |
Звук: Realtek High Definition Audio | |
ОС: Windows 10 Pro x64 |
Конфигурация компьютера | |
Процессор: AMD Ryzen 5 3500X 6-Core Processor, 3593 МГц | |
Материнская плата: Gigabyte B450M DS3H-CF | |
Память: 2 x Kingston HyperX FURY Black DDR4, 8,00 ГБ | |
HDD: TOSHIBA DT01ACA200 ATA Device 1,82 ТБ, Samsung SSD 860 PRO 256GB | |
Видеокарта: NVIDIA GeForce GTX 1060 3GB | |
Звук: Realtek High Definition Audio | |
ОС: Windows 10 Pro x64 |
Iska, возможно ли сделать так, что бы меню не закрывалось и после завершения задачи - можно было выбрать другой пункт?
Конфигурация компьютера | |
Процессор: Pentium(R) Dual-Core CPU E5200 @ 2.50Ghz | |
Материнская плата: ASRock G31M-S | |
Память: 1528 Mb DDR2, Samsung | |
HDD: IDE, ST325062A, 250GB | |
Видеокарта: Intel(R) G33/G31 Express Chipset | |
Звук: Realtek | |
Блок питания: 350W | |
CD/DVD: PIONER DVD-RW DVR-112D | |
ОС: Win XP SP3 Simple Edition |
-------
Сложность программы растет до тех пор, пока не превысит способности программиста.
Приветствую всех.
Подскажите пожалуйста момент. После "Введите цифру желаемого пункта" мне допустим надо ещё накидать пару строчек текста, но через echo текст в консоли не отображается. Возможно ли вообще отобразить текст в консоле после "Введите цифру желаемого пункта" следующей строкой?
1. Установить драйвер защиты (обязательно) - 1
2. Установить защиту реестра - 2
3. Установить защиту (файлов, папок, драйверов, служб) - 3
4. Вывести подробный отчет по защите (папка logs) - 4
5. Выход - 5
Здесь собираем команды и простые скрипты Batch, VBScript, Powershell,
имеющие специфику безопасности :
- проверка, сбор информации и диагностика системы;
- восстановление после заражения;
- резервное копирование;
- усиление защиты.
Все скрипты по мере добавления будут сгруппированы в первом посте.
Вы можете задать вопрос по любому коду, а также выложить свой, создав новую тему в этом разделе.
- Проверка системы на ошибки/уязвимости
Dragokas
Very kind Developer
GetUserBySID: Определение имени учетной записи пользователя по указанному идентификатору безопасности SID
Вопрос | Ответ
WD|Все
S-1-1-0|Все
CO|СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ
S-1-3-0|СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ
BU|BUILTIN\Пользователи
BA|BUILTIN\Администраторы
AU|NT AUTHORITY\Прошедшие проверку
S-1-5-11|NT AUTHORITY\Прошедшие проверку
SY|NT AUTHORITY\система
SU|NT AUTHORITY\СЛУЖБА
Dragokas
Very kind Developer
- версии,
- разрядности,
- сборки,
- семейства операционной системы,
- разрядности среды, из которой запущен Batch
Dragokas
Very kind Developer
Создание контрольной точки восстановления системы
В Windows Vista, 7, 8 необходимо запускать в режиме повышенных привилегий.
Вручную: через апплет "Свойства системы":
открыть окно - rundll32 shell32.dll,Control_RunDLL sysdm.cpl,,4
Как создать новую контрольную точку восстановления и очистить предыдущие
Восстановление состояния системы до последней контрольной точки
Dragokas
Very kind Developer
Рекурсивный DIR /X
Используется для получения имени файла/папки в формате 8.3,
если другими способами не получается удалить/переименовать объект.
Выводит отчет в форматах Plain Text (DirX.txt) и CSV (DirX.csv) рекурсивно для текущего и всех подкаталогов,
начиная с места, откуда батник сам запущен.
Если отчет не был создан, запустите батник правым кликом "От имени Администратора".
Помните: некоторые объекты с некорректным именем можно удалить/переименовать,
добавив к полному имени файла! префикс \\?\
например:
Этот способ отключает некоторые ограничения на операции с файловой системой.
DIR "H:\_CMD\_AntiHidden\1.." "H:\_CMD\_AntiHidden\1F85C~1"
DIR "H:\_CMD\_AntiHidden\1..\2.." "H:\_CMD\_AntiHidden\1F85C~1\2ECCD~1"
DIR "H:\_CMD\_AntiHidden\1..\2..\3.." "H:\_CMD\_AntiHidden\1F85C~1\2ECCD~1\3B2F7~1"
FILE "H:\_CMD\_AntiHidden\1..\2..\3..\PsExec.exe" "H:\_CMD\_AntiHidden\1F85C~1\2ECCD~1\3B2F7~1\PsExec.exe"
FILE "H:\_CMD\_AntiHidden\1..\Procmon.exe" "H:\_CMD\_AntiHidden\1F85C~1\Procmon.exe"
DIR "H:\_CMD\_AntiHidden\s" "H:\_CMD\_AntiHidden\s"
DIR "H:\_CMD\_AntiHidden\hs" "H:\_CMD\_AntiHidden\hs"
DIR "H:\_CMD\_AntiHidden\h" "H:\_CMD\_AntiHidden\h"
DIR "H:\_CMD\_AntiHidden\?" "H:\_CMD\_AntiHidden\D205~1"
DIR "H:\_CMD\_AntiHidden\autorun.inf" "H:\_CMD\_AntiHidden\autorun.inf"
DIR "H:\_CMD\_AntiHidden\autorun.inf\com1" "H:\_CMD\_AntiHidden\autorun.inf\com1"
DIR "H:\_CMD\_AntiHidden\autorun.inf\defence" "H:\_CMD\_AntiHidden\autorun.inf\defence"
DIR "H:\_CMD\_AntiHidden\\Dragokas.." "H:\_CMD\_AntiHidden\autorun.inf\DRAGOK~1"
FILE "H:\_CMD\_AntiHidden\DirX.csv" "H:\_CMD\_AntiHidden\DirX.csv"
FILE "H:\_CMD\_AntiHidden\Autorun_Folder_Del.cmd" "H:\_CMD\_AntiHidden\AUTORU~1.CMD"
FILE "H:\_CMD\_AntiHidden\AntiHidden_Light.cmd" "H:\_CMD\_AntiHidden\ANTIHI~1.CMD"
FILE "H:\_CMD\_AntiHidden\DirX" "H:\_CMD\_AntiHidden\DIRX-~1.LOG"
FILE "H:\_CMD\_AntiHidden\DirX2.cmd" "H:\_CMD\_AntiHidden\DirX2.cmd"
FILE "H:\_CMD\_AntiHidden\DirX.cmd" "H:\_CMD\_AntiHidden\DirX.cmd"
FILE "H:\_CMD\_AntiHidden\Anti_Hidden_fast_ua_v.1.5.1.cmd" "H:\_CMD\_AntiHidden\ANTI_H~1.CMD"
FILE "H:\_CMD\_AntiHidden\Anti_Hidden_fast_ru_v.1.5.1.cmd" "H:\_CMD\_AntiHidden\ANTI_H~3.CMD"
FILE "H:\_CMD\_AntiHidden\Anti_Hidden_fast_ru_v.1.6.cmd" "H:\_CMD\_AntiHidden\ANTI_H~2.CMD"
Режим представления коротких имен файлов может быть отключен.
Тогда Вам не удастся получить имя в формате 8.3 командой DIR /X
Дополнительные статьи
Об этой статье
Читайте также: