|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Подверждение выполнения команд в bat файле (Y/N) |
|
|
CMD/BAT - [решено] Подверждение выполнения команд в bat файле (Y/N)
|
Новый участник Сообщения: 41 |
Помогите написать код, чтобы перед выполнением, например нескольких команд move (переместить) выдавался запрос с текстом "Подтвердить выполнение? (Y/N)
Нашел вот этот код Код: @set /p answer=Подтвердите выполнение? (Y/N): if %answer%==y move d:/folder/*.doc d:/folder/2018/01/09/ move d:/folder/*.docx d:/folder/2018/01/09/ move d:/folder/*.txt d:/folder/2018/01/09/ if %answer%==n cls Просьба не предлагать решение задачи на др. кроме BAT, т.к. все готовые команды, а их много, написаны на BAT. |
|
Отправлено: 17:58, 09-01-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sergey.l, следует разместить сие перед каждой командой move. Кроме того, на Windows 2003 и выше имеет смысл задействовать не set /p, а choice.exe (на предыдущих версиях его не было в комплекте, и требовалась отдельная установка из Resource Kit'ов), наподобие:
@echo off setlocal enableextensions enabledelayedexpansion choice.exe /m "Переместить *.doc" if %errorlevel% equ 1 move d:/folder/*.doc d:/folder/2018/01/09/ choice.exe /m "Переместить *.docx" if %errorlevel% equ 1 move d:/folder/*.docx d:/folder/2018/01/09/ choice.exe /m "Переместить *.txt" if %errorlevel% equ 1 move d:/folder/*.txt d:/folder/2018/01/09/ endlocal exit /b 0 |
Отправлено: 18:19, 09-01-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать У нас Windows 7. Т.е. choice.exe будет выдавай запрос на разрешение выполнения команды? Я просто не вижу теста с (Y/N)
Цитата Iska:
|
|
Отправлено: 18:29, 09-01-2018 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Sergey.l:
Скрытый текст
![]() «[Y,N]?» — добавляется по умолчанию, если иного не задано параметром /c: Цитата choice.exe /?:
|
||
Отправлено: 18:46, 09-01-2018 | #4 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Все хорошо, но как быть если в батнике более 20 команд. Устанешь Y нажимать. Может есть возможность команды выполнить под одним подтверждением или запуск батника сделать с подтверждением?
Цитата Iska:
|
|||
Отправлено: 20:36, 09-01-2018 | #5 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Или может в ТоталКоммандере прописать ключ для запуска батника с подтверждением?
p.s. необходимость подтверждения возникла из за осторожности, чтобы случайно не "понажимать", а то у нас девушки в смене, которые нажимают куда попало Цитата Iska:
|
|
Отправлено: 20:52, 09-01-2018 | #6 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Наткнулся на вот эту статью http://www.winblog.ru/win7/1147767821-09121101.html
Можно сделать такое меню, чтобы под цифрами выполнялись батники? |
Отправлено: 21:12, 09-01-2018 | #7 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Воспользовался вашим советом. решил вместо подтверждения сделать диалог, меню
Написал такой код Echo off cls Echo Work menu Echo ============================================================================ Echo 1 111.bat создать папки Echo 2 222.bat переместить заготовки Echo 2 333.bat забрать файлы по маске Echo ============================================================================ Choice /C 123 /M "Выберите один из вариантов!" If Errorlevel 1 Goto 1 If Errorlevel 2 Goto 2 If Errorlevel 3 Goto 3 Goto End :3 cls d:\папка\333.bat Goto End :2 cls d:\папка\222.bat Goto End :1 cls d:\папка\111.bat Goto End Поможете разобраться? Цитата Iska:
|
|
Отправлено: 21:56, 09-01-2018 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Sergey.l:
@echo off setlocal enableextensions enabledelayedexpansion choice.exe /m "Переместить файлы *.doc, *.docx, *.txt" if %errorlevel% equ 1 ( move d:/folder/*.doc d:/folder/2018/01/09/ move d:/folder/*.docx d:/folder/2018/01/09/ move d:/folder/*.txt d:/folder/2018/01/09/ ) endlocal exit /b 0 @echo off setlocal enableextensions enabledelayedexpansion choice.exe /m "Переместить файлы *.doc, *.docx, *.txt" if %errorlevel% equ 1 for %%i in (*.doc *.docx *.txt) do move "d:/folder/%%~i" "d:/folder/2018/01/09/" endlocal exit /b 0 Цитата Sergey.l:
Скрытый текст
@echo off setlocal enableextensions enabledelayedexpansion :Repeat echo ╔═══════════ Меню ═══════════╗ echo ║ 1. Создать папки ║ echo ║ 2. Переместить заготовки ║ echo ║ 3. Забрать файлы по маске ║ echo ║ 4. Выход из меню ║ echo ╟────────────────────────────╢ echo ║ Выберите один из вариантов ║ echo ╚════════════════════════════╝ echo. choice.exe /c 1234 if %errorlevel% equ 4 exit /b if %errorlevel% equ 255 exit /b call :Sub%errorlevel% goto :Repeat endlocal exit /b 0 :Sub1 call d:\папка\111.bat exit /b :Sub2 call d:\папка\222.bat exit /b :Sub3 call d:\папка\333.bat exit /b Причём необязательно, чтобы именно «выполнялись батники» — можно исполнять код непосредственно в процедурах прямо в этом же файле. |
||
Отправлено: 00:48, 10-01-2018 | #9 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Подскажите, а как вы делали рамку для меню?
echo ╔═══════════ Меню ═══════════╗ echo ║ 1. Создать папки ║ echo ║ 2. Переместить заготовки ║ echo ║ 3. Забрать файлы по маске ║ echo ║ 4. Выход из меню ║ echo ╟────────────────────────────╢ echo ║ Выберите один из вариантов ║ echo ╚════════════════════════════╝ echo. Цитата Iska:
|
|
Последний раз редактировалось Sergey.l, 10-01-2018 в 11:58. Отправлено: 10:54, 10-01-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Логирование выполнения команд с датой и временем | Pank | Скриптовые языки администрирования Windows | 5 | 28-11-2017 16:53 | |
CMD/BAT - Как в .bat файле сделать вывод результата выполнения в переменную?? | Eugene Shugaev | Скриптовые языки администрирования Windows | 1 | 12-03-2014 13:39 | |
Разное - [решено] Создание ярлыков для выполнения команд | alivakos | Microsoft Windows 7 | 3 | 02-09-2013 14:55 | |
Скрипт для выполнения команд после подтверждения | Pozia | AutoIt | 14 | 27-06-2012 23:46 | |
CMD/BAT - Проверка на выполнения команд в bat ? | men232 | Скриптовые языки администрирования Windows | 4 | 12-01-2011 22:23 |
|