Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Существует ли возможность взаимодействия с пользователем по ходу выполнения скрипта?

Ответить
Настройки темы
CMD/BAT - [решено] Существует ли возможность взаимодействия с пользователем по ходу выполнения скрипта?

Аватара для RUVATA

Старожил


Сообщения: 301
Благодарности: 16


Конфигурация

Профиль | Отправить PM | Цитировать


Всем доброго времени суток
Подскажите пожалуйста существует-ли возможность взаимодействия с пользователем по ходу выполнения скрипта в батнике
смысл в том, что единственное булевое значение, заданное пользователем на определенном этапе - избавит от большой работы, по процедурам обработки ошибок,
да и вообще упрощает алгоритм до "нельзя"
...Покопавшись в поисковиках, в поисках типа: "взаимодействие с пользователем cmd, bat, батник" , "операторы ввода cmd, bat... и.т.д. Ничего вразумительного не нашел.
...Подкоркой мозга чую, что возможность должна быть, или я где-то это уже видел...
конструкция проста : приостановка - получение значения переменной от пользователя - проверка или - продолжение

PS: именно с батниками никогда не заморачивался, но принципы программирования хорошо известны, пишу на VB, VBA. Готов учиться уму разуму.

-------
Одно дело искать сиюминутное решение, другое - искать знания...
вот и думай - что ты ищешь...


Отправлено: 09:25, 05-08-2010

 

Аватара для RUVATA

Старожил


Сообщения: 301
Благодарности: 16

Профиль | Отправить PM | Цитировать


Windows Server 2003 R2

Код: Выделить весь код
@echo off

set user=Богомолова_Л_Б
set ArchDir=D:\Пробная\%date:~6,4%\%date:~0,2%.%date:~3,2%.zip
set BaseDir=D:\Пробная\Архив\

echo 11:45 - ПРОЗЬБА ПОКИНУТЬ БАЗУ 1С
echo через 5 минут начнется автоматическое архивирование

:Er
echo Сможете ли вы покинуть БД до 11:50? Y - Да, N - нет
echo ============================================
Set /p Key=
if %Key%=="N" (goto :No) else (goto :2step) /i


:No 
echo Укажите пожалуйста причину...
echo ============================================
set /p Event=
echo Причина ( %Event% ) зафиксированна для пользователя %user%
pause


:2step
echo ( %Choise% ) - не является командой
if not %Choice%=="Y" goto :Er
7z a -tzip %ArchDir% %BaseDir%
pause
что-то вроде того... но это просто полигон... проверка как работают операторы и конструкция в целом

сейчас вообще ведет себя странно...
на этапе первого запроса у пользователя - останавливается... принимает и благополучно закрывается...
ни ошибки ни чего... в коде нигде не встречается goto :eof, а в конце каждого логического блока pause

а мне нужен ключь /i оператора If , как указанно в справке он отвечает за то, что при сравнении не будет учитываться регистр символов

-------
Одно дело искать сиюминутное решение, другое - искать знания...
вот и думай - что ты ищешь...


Отправлено: 14:59, 05-08-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 140
Благодарности: 92

Профиль | Отправить PM | Цитировать


RUVATA,


команда goto не требует ":", просто goto No - это и есть "причина выхода", т.е. ошибка

Cовет: запускай *.bat через cmd и "Echo on"

Отправлено: 15:02, 05-08-2010 | #12


Аватара для RUVATA

Старожил


Сообщения: 301
Благодарности: 16

Профиль | Отправить PM | Цитировать


хотя это ничего не меняет...
Цитата RUVATA:
if %Key%=="N" (goto :No) else (goto :2step) /i »
/i это опечатка в коде его нет

т.е
Цитата RUVATA:
if %Key%=="N" (goto :No) else (goto :2step) »
?
там везде есть :
как правильно собирается конструкция
IF - Else
справка убогая до безобразия
там во всех примера в конце строки какой-то missing ничкго в скобки не заключается
например в том-же "урок-батники" нет никакого missing
параметры инструкция заключены в скобки

-------
Одно дело искать сиюминутное решение, другое - искать знания...
вот и думай - что ты ищешь...


Отправлено: 15:03, 05-08-2010 | #13


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата RUVATA:
if %Key%=="N" »
Здесь у Вас ошибка. Переменная %Key% не содержит кавычек, а сравниваете Вы ее с N в кавычках. Либо уберите кавычки совсем (но будет вылетать при пустом вводе) либо добавьте кавычки и в первую часть сравнения:
Код: Выделить весь код
if "%Key%"=="N"
Либо так:
Код: Выделить весь код
if %Key%#==N#
А ключ /i Вы используете правильно и целесообразно, можете его вернуть на место.

PS
Цитата deepred:
goto не требует ":", просто goto No - это и есть "причина выхода", т.е. ошибка »
Не всегда не требует! И написание с двоеточием тоже правильное.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:09, 05-08-2010 | #14


Пользователь


Сообщения: 140
Благодарности: 92

Профиль | Отправить PM | Цитировать


RUVATA,

Код: Выделить весь код
@echo off

set user=Богомолова_Л_Б
set ArchDir=D:\Пробная\%date:~6,4%\%date:~0,2%.%date:~3,2%.zip
set BaseDir=D:\Пробная\Архив\

echo 11:45 - ПРОCЬБА ПОКИНУТЬ БАЗУ 1С
echo через 5 минут начнется автоматическое архивирование

:Er
echo Сможете ли вы покинуть БД до 11:50? Y - Да, N - нет
echo ============================================
Set /p Key=
if "%Key%"=="N" (goto No) else goto 2step


:No 
echo Укажите пожалуйста причину...
echo ============================================
set /p Event=
echo Причина ( %Event% ) зафиксированна для пользователя %username%
goto :eof & rem а дальше что? Выход?

:2step
echo ( %Key% ) - не является командой
if not "%Key%"=="Y" goto Er
7z a -tzip %ArchDir% %BaseDir%
pause

Последний раз редактировалось deepred, 06-08-2010 в 09:28.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:13, 05-08-2010 | #15


Аватара для RUVATA

Старожил


Сообщения: 301
Благодарности: 16

Профиль | Отправить PM | Цитировать


ну из меня и скрипто-кодер )
вот э-т я наблукал

т.е.
в конструкции if - else
иснструкции для true-IF заключаются в скобки, а для else - нет?
тож... синтаксис не описанный в справке?

Код: Выделить весь код
@echo off

set user=Богомолова_Л_Б
set ArchDir=D:\Пробная\%date:~6,4%\%date:~0,2%.%date:~3,2%.zip
set BaseDir=D:\Пробная\Архив\

echo 11:45 - ПРОСЬБА ПОКИНУТЬ БАЗУ 1С
echo через 5 минут начнется автоматическое архивирование

:Er
echo Сможете ли вы покинуть БД до 11:50? Y - Да, N - нет
echo ============================================
Set /p Key=
if /i %Key%#==N# (goto No) else goto 2step

:No 
echo Укажите пожалуйста причину...
echo ============================================
set /p Event=
echo Причина ( %Event% ) зафиксированна для пользователя %username%
pause

:2step
if /i not %Key%#==Y# goto Er
7z a -tzip %ArchDir% %BaseDir%
pause
вот так все работает

-------
Одно дело искать сиюминутное решение, другое - искать знания...
вот и думай - что ты ищешь...


Отправлено: 15:22, 05-08-2010 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Существует ли возможность взаимодействия с пользователем по ходу выполнения скрипта?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Существует ли возможность ускорить процесс? stalingrad432006 Видео и аудио: обработка и кодирование 20 20-05-2008 20:58
как произвесит расчет времени выполнения скрипта Vlad Drakula Вебмастеру 1 10-12-2003 00:05
подсчет времени выполнения скрипта на PHP Vlad Drakula Вебмастеру 2 13-10-2003 16:20
log выполнения Perl CGI-скрипта CBMen Вебмастеру 1 23-03-2003 14:18




 
Переход