![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка на наличие теста ДО определнного символа |
|
CMD/BAT - [решено] Проверка на наличие теста ДО определнного символа
|
Пользователь Сообщения: 116 |
некоторые из вас уже знают что я на этом форуме задавал вопрос как выводить текст на экран после определенного символа...
Скрытый текст
http://forum.oszone.net/thread-329624.html
батник(зачем он тут нужен не знаю но на остальных сайтах где я раньше спрашивал подобные вопросы просили батник и его предназначение): p.s.Части батника: Скрытый текст
start1 -логируемая рабочая часть
start2/21 -нелогируемая рабочая часть Repeat -поиск ответа в логируемой рабочей части Repeat1 -поиск ответа в нелогируемой рабочей части ANF - ошибка о том что ответ не найден на логируемой рабочей части ANF1 - ошибка о том что ответ не найден на нелогируемой рабочей части Check1/2 - проверки на повтор и отсутсвие вопроса на логируемой части Check3/4 - проверки на повтор и отсутсвие вопроса на нелогируемой части Answer - установка ответа в переменную на логируемой части Continue - вывод ответа на экран логируемой части Answer1 - установка ответа в переменную на нелогируемой части Continue1 - вывод ответа на экран нелогируемой части Переменные Атрибуты @Echo Off set Question=0 set Question1=0 Set Lines=0 For /F "usebackq" %%L In ("123.txt") Do (Set /A Lines+=1) cls setlocal enableextensions enabledelayedexpansion goto start2 :start1 set LOG=BotLOG.log echo Logging is ON set /p "Question=" set /a "STR=0" set /A "Nstrok=0" set /a "NUM=0" set /a "NUM2=!Lines!+1" If "!Question!"=="0" ( cls Echo I Cannot read emtpy messages! goto start1 ) :Repeat set PrevQuest=%Question% set /a NUM+=1 set /a c=0 for /f "UseBackQ Delims=" %%A IN ("123.txt") do ( set /a c+=1 if !c!==%NUM% set "STR=%%A" ) echo !NUM! !STR! !Lines! !NUM2! >>%LOG% echo !STR! | >nul findstr.exe /C:!Question! && goto Answer if "!NUM!"=="!NUM2!" (goto ANF) else goto Repeat :ANF cls echo Answer Not Found set /a "STR=0" set /A "Nstrok=0" set /a "NUM=0" set /p "Question=" :Check1 if "!Question!"=="!PrevQuest!" ( cls echo I have already answered this question! echo I have already answered this question! >>%LOG% set /p "Question=" goto Check1 ) else if "!Question!"=="DeBuG OFF" (goto start21) else If "!Question!"=="0" ( cls Echo I Cannot read emtpy messages! set /p "Question=" goto Check2 ) else ( set PrevQuest=%Question% goto Repeat ) :Answer set /A "Nstrok=!NUM!" Set "FileIn=123.txt" Set "Delim==" Set /A n=%Nstrok%-1 FOR /F "usebackq tokens=1,* delims=%Delim%" %%i IN (`MORE +%n% "%FileIn%"`) DO Set "Answer=%%j" &GoTo :Continue :Continue cls Echo !Answer! Echo !Answer! >>%LOG% set /a "Question=0" set /a "STR=0" set /A "Nstrok=0" set /a "NUM=0" set /p "Question=" :Check2 if "!Question!"=="!PrevQuest!" ( cls echo I have already answered this question! echo I have already answered this question! >>%LOG% set /p "Question=" goto Check2 ) else if "!Question!"=="DeBuG OFF" (goto start21) else If "!Question!"=="0" ( cls Echo I Cannot read emtpy messages! set /p "Question=" goto Check2 ) else ( set PrevQuest=%Question% goto Repeat ) endlocal :start21 echo Logging is OFF :start2 set /p "Question1=" set /a "STR1=0" set /A "Nstrok1=0" set /a "NUM1=0" set /a "NUM21=!Lines!+1" If "!Question1!"=="0" ( cls Echo I Cannot read emtpy messages! goto start2 ) :Repeat1 set PrevQuest1=%Question1% set /a NUM1+=1 set /a c=0 for /f "UseBackQ Delims=" %%A IN ("123.txt") do ( set /a c+=1 if !c!==%NUM1% set "STR1=%%A" ) echo !STR1! | >nul findstr.exe /C:!Question1! && goto Answer1 if "!NUM1!"=="!NUM21!" (goto ANF1) else goto Repeat1 :ANF1 cls echo Answer Not Found set /a "STR1=0" set /A "Nstrok1=0" set /a "NUM1=0" set /p "Question1=" :Check3 if "!Question1!"=="!PrevQuest1!" ( cls echo I have already answered this question! set /p "Question1=" goto Check3 ) else if "!Question1!"=="DeBuG ON" (goto start1) else If "!Question1!"=="0" ( cls Echo I Cannot read emtpy messages! set /p "Question1=" goto Check3 ) else ( set PrevQuest1=%Question1% goto Repeat1 ) :Answer1 set /A "Nstrok1=!NUM1!" Set "FileIn1=123.txt" Set "Delim1==" Set /A n=%Nstrok1%-1 FOR /F "usebackq tokens=1,* delims=%Delim1%" %%i IN (`MORE +%n% "%FileIn1%"`) DO Set "Answer1=%%j" &GoTo :Continue1 :Continue1 cls Echo !Answer1! set /a "Question1=0" set /a "STR1=0" set /A "Nstrok1=0" set /a "NUM1=0" set /p "Question1=" :Check4 if "!Question1!"=="!PrevQuest1!" ( cls echo I have already answered this question! set /p "Question1=" goto Check4 ) else if "!Question1!"=="DeBuG ON" (goto start1) else If "!Question1!"=="0" ( cls Echo I Cannot read emtpy messages! set /p "Question1=" goto Check4 ) else ( set PrevQuest1=%Question1% goto Repeat1 ) endlocal PAUSE>nul Скрытый текст
Привет=Приветики
Пока=Досвидания Проверка=раз Два ТРИ Проверка ответа с пробелами предназначение батника:попытка написать батник который "Отвечает" на заданные вопросы думаю вопрос ясен и понятен...сделать скрипт проверяющий определенную строку(переменная NUM=номер строки или STR=сама строка) строку на наличие определенного текста(переменная Question/Question1) до знака =...надеюсь на вашу помощь... |
|
Отправлено: 23:35, 09-09-2017 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Darkar25,
погуглите: "Чат на cmd" и одной проблемой (или головной болью) у вас станет меньше. |
Отправлено: 05:29, 10-09-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Darkar25,
Не знаю, что Вы хотите, но вот вариант. Здесь "база" совмещена с батником, но может быть и прописана в отдельный файл. Запускайте, смотрите. Сохранить в 866 кодировке
@Echo Off
CLS
Set "FileIn=Z:\Box_In\list.txt"
Set "FileIn=%~dpnx0"
Set "Delim=="
Set "Answ=Скажи что-нибудь!"
:Begin
Set "Quest="
Set /P "Quest=%Answ% >"
FOR /F "tokens=*" %%s IN ("%Quest%") DO Set "Quest=%%s"
If "%Quest%"=="" Set "Quest=#"
Set "Answ="
FOR /F "usebackq tokens=1,* delims=%Delim%" %%i IN (`FINDSTR /B /I /C:"%Quest%=" "%FileIn%" 2^>nul`) DO Set "Answ=%%j"
If "%Answ%"=="" Set "Answ=Я этого не знаю. Скажи что-то внятное."
GoTo :Begin
GoTo :Eof
#=Ничего не сказано. Скажи что-нибудь!
привет=Здравствуй, моя радость
до свидания=Буду скучать
Тест=Раз, два, три, четыре, пять! Вышел зайчик погулять!
|
------- Последний раз редактировалось megaloman, 10-09-2017 в 21:15. Отправлено: 11:44, 10-09-2017 | #3 |
Пользователь Сообщения: 116
|
Профиль | Отправить PM | Цитировать спасибо,megaloman,вы решили мне сразу 2 проблемы:Проблема 1:невозможность писать пробелы в вопросах
Проблема 2:при вписывании вопроса можно написать ответ и он ответит ответом на ответ...отмечаю решенными обе темы... |
Отправлено: 17:11, 13-09-2017 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Проверка на наличие интернета | Qweezy | AutoIt | 1 | 14-06-2017 13:37 | |
Проверка компа на наличие Бяки | Tropikusik | Лечение систем от вредоносных программ | 2 | 24-07-2014 22:31 | |
CMD/BAT - Проверка на наличие папок в директории | feAre | Скриптовые языки администрирования Windows | 17 | 19-11-2013 17:31 | |
CMD/BAT - Проверка на наличие процесса | tazik9 | Скриптовые языки администрирования Windows | 0 | 23-01-2011 16:56 | |
VBS/WSH/JS - [решено] Проверка на наличие файлй | peretc001 | Скриптовые языки администрирования Windows | 2 | 20-01-2011 16:00 |
|