![]() |
Существует ли возможность взаимодействия с пользователем по ходу выполнения скрипта?
Всем доброго времени суток :gamer:
Подскажите пожалуйста существует-ли возможность взаимодействия с пользователем по ходу выполнения скрипта в батнике смысл в том, что единственное булевое значение, заданное пользователем на определенном этапе - избавит от большой работы, по процедурам обработки ошибок, да и вообще упрощает алгоритм до "нельзя" ...Покопавшись в поисковиках, в поисках типа: "взаимодействие с пользователем cmd, bat, батник" , "операторы ввода cmd, bat... и.т.д. Ничего вразумительного не нашел. ...Подкоркой мозга чую, что возможность должна быть, или я где-то это уже видел... конструкция проста : приостановка - получение значения переменной от пользователя - проверка или - продолжение PS: именно с батниками никогда не заморачивался, но принципы программирования хорошо известны, пишу на VB, VBA. Готов учиться уму разуму. :yessir: |
Код:
SET /P variable=[promptString] Цитата:
|
Код:
|
Назрело два вопроса:
1) Если из одного батника выполняется другой... переменные в них общие, или переменные надо как-то переносить, как например в VB атрибутом к вызываемой процедуре, вообще есть такая возможность? 2) Батник может создавать текстовый файл, и записывать туда данные... а самое главное читать и извлекать данные? Цитата:
|
RUVATA
<del> 2 Писать может. Код:
Echo Bla bla bla>text.txt Цитата:
|
RUVATA,
Цитата:
в first.bat вызов запишется так: call Путь\second.bat "%parametr1%" "%parametr2%" в second.bat "прием" параметров запишется так: parametr1=%~1 & parametr2=%~2 более подробно cmd>call /? Цитата:
будет больше пользы если изложишь задачу побробнее... |
RUVATA Два знака равно потому что в этой команде сравнивается введенное значение пользователем хранящееся в переменной %Choice% и строковое значение "N" с помощью IF, это не присвоение переменной значения где ставиться одно равно. И правильно писать IF %Choice%=="N"
|
синтаксис так синтаксис :) все понятно... Жаль что в справке на этом не заострено внимание как бы в примерах везде ==, но нигде не упоминается, что это синтаксическое условие IF
Где - то наверное я накуролесил... программа приостанавливается... значение запрашивает... но нифига его не сохраняет... Код:
Set /P Choice= или я где-то в "if" напутал, потому, что исход всегда один (goto :No) |
RUVATA, попробуйте изменить так:
Код:
Set /P Key= |
RUVATA, попробуйте изменить так:
Код:
Set /P Key= |
Windows Server 2003 R2
Код:
@echo off сейчас вообще ведет себя странно... на этапе первого запроса у пользователя - останавливается... принимает и благополучно закрывается... ни ошибки ни чего... в коде нигде не встречается goto :eof, а в конце каждого логического блока pause а мне нужен ключь /i оператора If , как указанно в справке он отвечает за то, что при сравнении не будет учитываться регистр символов |
RUVATA,
команда goto не требует ":", просто goto No - это и есть "причина выхода", т.е. ошибка Cовет: запускай *.bat через cmd и "Echo on" |
хотя это ничего не меняет...
Цитата:
т.е Цитата:
там везде есть : как правильно собирается конструкция IF - Else справка убогая до безобразия там во всех примера в конце строки какой-то missing ничкго в скобки не заключается например в том-же "урок-батники" нет никакого missing параметры инструкция заключены в скобки |
Цитата:
Код:
if "%Key%"=="N" Код:
if %Key%#==N# PS Цитата:
|
RUVATA,
Код:
@echo off |
ну из меня и скрипто-кодер :))
вот э-т я наблукал :o т.е. в конструкции if - else иснструкции для true-IF заключаются в скобки, а для else - нет? тож... синтаксис не описанный в справке? Код:
@echo off |
Время: 06:00. |
Время: 06:00.
© OSzone.net 2001-