Помощь - Поиск - Пользователи - Календарь
Полная версия: Программа "ask"
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
jetman
Стоит задача написать bat файл для работы с командой attrib, так вот для этого мне похоже понадобится программа "ask" (выводит некое сообщение и предлагает ввести одну из заранее описанных команд, к примеру ASK "Hello, for help enter h", h), если кто ее встречал киньте пожалуйста ссылочку.
Заранее прошу прощения если написано не в той ветке...
volvo
jetman, телепатов нет... Нужна помощь - переформулируй задание. То, что ты написал
Цитата
предлагает ввести одну из заранее описанных команд
- никакой смысловой нагрузки не несет. Кем описанных? Где описанных? В каком формате?

Приведи 4-5 примеров вызова ASK и тот результат, который должен возвращаться (и, кстати, КАК он должен возвращаться, если уже ты упомянул про BAT-файлы.)
Или полностью сформулируй основную задачу, возможно есть другой способ ее решения...
jetman
Значит так, формат команды:
ASK "сообщение", список-символов
Пример1: ASK "Запусить программу ALFA[Y/N]?", YN
При ответе N значение переменной ERRORLEVEL=2, при Y - 1.
Пример2: Командный файл выбора из трех игр(DIGGER, CAT, TETRIS).
Код

echo off
echo Выберите игру
echo D - DIGGER
echo T - TETRIS
echo C - CAT
ask "Введите D, T или C:", DTC
if errorlevel 3 goto cat
if errorlevel 2 goto tetris
digger
goto exit
:tetris
tetris
goto exit
:cat
cat
:exit

Как видно из примера при помощи программы ASK можно достаточно легко реализовать полноценное меню в командном файле. Ну вот вообщем-то и все.
jetman
Если конкретно по моей задаче, то: Разработать командный файл, предназначенный для изучения команды ATTRIB. В меню предусмотреть вывод справки по данной команде, а также не менее четырех примеров с пояснениями. В примерах сначала выводить саму команду, а потом результаты ее работы.
Код

echo off
cls
echo Attrib v.1.0
md \Attrib
attrib /?
echo Create text file please and press ctrl+z :
copy con \Attrib\file1.txt
attrib \Attrib\file1.txt -S
attrib \Attrib\file1.txt -H
attrib \Attrib\file1.txt -R
attrib \Attrib\file1.txt -A
echo Add ReadOnly (attrib +R)
attrib \Attrib\file1.txt +R
attrib \Attrib\file1.txt
pause
echo Add Archive (attrib +A)
attrib \Attrib\file1.txt +A
attrib \Attrib\file1.txt
pause
echo Add System (attrib +S)
attrib \Attrib\file1.txt +S
attrib \Attrib\file1.txt
attrib \Attrib\file1.txt -S
attrib \Attrib\file1.txt -R
del \Attrib\file1.txt
rd \Attrib
pause
volvo
jetman, так пойдет? Если не заданы 2 параметра, то программа просто завершает выполнение и возвращает 0 в ERRORLEVEL ...
uses crt;

var
s: string;
Options: Set Of Char;
i: integer;
ch: Char;

begin

If ParamCount < 2 Then Halt(0);
Write(ParamStr(1));

Options := [];
s := ParamStr(2);
For i := 1 To Length(s) Do Begin
s[i] := UpCase(s[i]);
Options := Options + [ s[i] ];
End;

Repeat
Ch := ReadKey;
Until UpCase(Ch) In Options;
Halt( Pos(UpCase(Ch), s) );
end.

trminator
Если необязательно писать свою программу, то была такая штука в DOS/Win9x (кажется) -- choice.exe. В ХР ее не вижу, но на сайте Microsoft есть информация по ней, можно попытаться поискать отдельно (в Resource Kit'ах, может, осела каких, или из того же Win2003 выдрать, о котором в статье толкуется)
GoodWind
choice.com есть в Win98:
volvo
Ребята, про "Resource Kit for Windows NT" слышали? Так вот там оно точно есть (Windows NT, 2000, XP) :yes: ... Хотя, в принципе, зачем, если написанная программа делает то, что нужно?
xds
Программа "ASK" являлась частью пакета "Norton Integrator", который в последствие переродился в "Notron Utilites", а "ASK" была интегрирована в программу "Batch Enhancer". Формат вызова - аналогичный, т.е. BE ASK "сообщение", список-символов.

BE из NU 8.0: Нажмите для просмотра прикрепленного файла

P. S. Помнится, в детстве очень весело забавлялся с этой штукой :D
jetman
ОГРОМНОЕ вам всем спасибо. Все работает!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.