Вход на сайт Навигация по сайту Любить и уважать Бонус-счастливчики
|
Содержимое файла "1.9 - .doc" (без форматирования) Розробка тексту командного файлу. Отже, наступним кроком я маю розробити текст командних файлів. Нажаль, деякі дії, які в алгоритмі можна зобразити одним блоком, в консолі реалізуються набором декількох дій. Так, для виведення довідки я використовував декілька команд echo послідовно. 1.2.1 Загальний перелік використованих команд. Echo – вимикає/вмикає ехо команд. Також керує виведенням тексту на екран. Set – присвоює значення змінній. Goto – перехід до ладанної мітки. Pause – при зупинка команди. Call – запуск іншого командного файлу в тому самому вікні. If – перевірка виконання умови. Choice – можливість вибрати один із параметрів. Dir – показує вміст каталогу. Type – виводить у вікно консолі текст вибраного файлу. Format – команда форматування жорсткого диску. Find – команда, яка шукає задану строку у вказаному файлі. Del – видаляє файл For – цикл (повторювання тієї самої команди декілька раз). 1.2.2 Особливості тексту командних файлів у зв’язку із призначенням. В меню з самого початку мені необхідно перевірити, чи був заданий фактичний параметр //?. Якщо був, то вивід довідки. Якщо ні – то питання до користувача, чи хоче він отримати довідку. Довідку я вивожу, використовуючи декілька разів команду echo. Щоб користувач міг вільно обирати команду і щоб не допустити великої кількості помилок, я використав команду choice. Щоб витягти результат після виконання команди, я використовував змінну ERRORLEVEL. Після того, як користувач обере програму і вона виконається, йому буде запропоновано припинити чи продовжити роботу програми. Обов’язково після всього буде виконана команда pause. Вона необхідна, щоб користувач зміг побачити результати роботи. Тут я також перевіряю, чи введений ключ //?. Довідка виводиться таким же принципом, як і в меню. Змінні обнуляються за допомогою команди set A= вона записую в змінну пусту строку. Щоб перенаправити результат виконання команди у файл, я використав оператор перенапрвлення > і з його допомогою зробив все, що мені необхідно. В третій програмі мені необхідно було використати цикл для того, щоб витягти із файлу зі списком вмісту каталогу необхідні найменування. Текст командного файлу меню: @echo off if %1*==//?* goto help goto wait :waiting pause :wait choice /t 20 /D Y /M "would you like to get help?" if %errorlevel% == 1 goto help echo ------------------------------------- echo chose the programm echo - 1 - you'll be able to see a directory echo - 2 - format a floppy echo - 3 - show files echo ------------------------------------- pause choice /c 1234 /N /t 30 /d 4 if %errorlevel% == 4 echo you are not at computer & goto waiting if %errorlevel% == 3 echo you've chosen 3 & goto prog3 if %errorlevel% == 2 echo you've chosen 2 & goto prog2 if %errorlevel% == 1 echo you've chosen 1 & goto prog1 echo error goto end :prog1 if not exist c:\1-kurs\PT-141\KR\prog1.bat echo there isn't a programm&goto end call c:\1-kurs\PT-141\KR\prog1.bat goto contin :prog2 if not exist c:\1-kurs\PT-141\KR\prog2.bat echo there isn't a programm&goto end call c:\1-kurs\PT-141\KR\prog2.bat goto contin :prog3 if not exist c:\1-kurs\PT-141\KR\prog3.bat echo there isn't a programm&goto end call c:\1-kurs\PT-141\KR\prog3.bat goto contin :contin choice /M "would you like to continue?" if %errorlevel% == 2 echo finish & goto end if %errorlevel% == 1 echo continue & goto waiting echo error goto end :help echo ------------------------------------------------------ echo Savytskiy Oleksiy, student of PT-141 echo ------------------------------------------------------- echo HA3HA4EHIE: echo 1) To make a file which have a list of files of the directory echo 2) To format a floppy with label or without echo 3) To show all files of directory with the same date of creation echo ================================================== echo ================================================== echo choose a number of program you want to get help or echo - 4 - if you don't need help more pause choice /C 1234 /N /M "just enter a number" if %errorlevel% == 4 echo OK & goto contin if %errorlevel% == 3 echo OK. You've chosen 3 & call c:\1-kurs\PT-141\KR\prog3.bat //? & set HELP= &goto contin if %errorlevel% == 2 echo OK. You've chosen 2 & call c:\1-kurs\PT-141\KR\prog2.bat //? & set HELP= &goto contin if %errorlevel% == 1 echo OK. You've chosen 1 & call c:\1-kurs\PT-141\KR\prog1.bat //? & set HELP= &goto contin echo error goto end :end Pause Текст першої програми: @echo off if %1*==//?* set HELP=help if %HELP%*==* goto work echo ________________________________________________________ echo ________________________________________________________ echo - firstly, you need to chose a directory where you want to see a list echo do it like this: c:\1-kurs\PT-141\ echo - then you should chose a method of sorting out echo there will be a list of enable kyes, chose one of them echo or put X if you don't want sorting echo good lUck! Have a nice time echo _________________________________________________________ echo _________________________________________________________ pause :work set A= set B= set errorlevel= set /p A=chose a directory if *%A%==* echo error & goto work echo ---------------------------------- echo choose a key echo - N - name echo - S - size echo - E - Alphabet echo - D - date echo - G - directory first echo - X - without key pause choice /C NSEDGX /N /T 60 /d X if %errorlevel% == 1 set B=N & goto with if %errorlevel% == 2 set B=S & goto with if %errorlevel% == 3 set B=E & goto with if %errorlevel% == 4 set B=D & goto with if %errorlevel% == 5 set B=G & goto with if %errorlevel% == 6 goto without :with dir %A% /O:%B% > %A%filedir.txt goto output :without dir %A% > %A%filedir.txt :output if not exist %A%filedir.txt echo The proplem have happend&goto end type %A%filedir.txt %A%filedir.txt > con choice /M "would you like to continue?" if %errorlevel% == 2 echo finish & goto end if not %errorlevel% == 1 echo error & goto end echo continue goto work :end Текст другої програми: @echo off if %1*==//?* set HELP=help if %HELP%*==* goto work echo _____________________________________ echo _____________________________________ echo - firstly the program will ask you if you want to make a label echo put a name of a label echo or don't put anything if you don't want a label echo - then you need to choose a way of format echo you'll get describtion of ways echo have a good day! echo _____________________________________ echo _____________________________________ :work set name= set C= set E= set errorlevel= set /p name=write a label or don't write anything if not %name%*==* set C=/V:%name% echo choose a way to format echo - Q - quick echo - P - with rewriting choice /C QP /N /T 30 /D Q if %errorlevel% == 1 set D=/Q& goto ready if %errorlevel% == 2 set D=/P:& goto slow :slow set /p E=put number of rewriting if not defined E echo error end goto slow & goto ready :ready if %C%*==* goto m1 if %E%*==* goto n1 echo ---------------------------------------------------------- choice /t 30 /d N /M "are you sure you want to format floppy disk with label %name% and with %E% rewritings?" echo ---------------------------------------------------------- goto prepare :n1 echo ---------------------------------------------------------- choice /t 30 /d N /M "are you sure you want to format floppy disk with label %name% and without rewritings?" echo ---------------------------------------------------------- goto prepare :m1 if %E%*==* goto n2 echo ---------------------------------------------------------- choice /t 30 /d N /M "are you sure you want to format floppy disk without label and with %E% rewritings?" echo ---------------------------------------------------------- goto prepare :n2 echo ---------------------------------------------------------- choice /t 30 /d N /M "are you sure you want to format floppy disk without label and without rewritings?" echo ---------------------------------------------------------- :prepare if %errorlevel% == 2 goto end if not %errorlevel% == 1 echo error & goto end format a %C% %D%%E% :end Текст третьої програми @echo off if %1*==//?* set HELP=help if %HELP%*==* goto work echo _____________________________________ echo _____________________________________ echo - firstly, you need to chose a directory where you want to see a list from echo do it like this: c:\1-kurs\PT-141\ echo - After that you should chose a date. echo It may be time 15:00 or year 2015 or month and day (15.05) with DOT echo you can combine everithing bat time and date together echo _____________________________________ echo _____________________________________ :work set F= set G= set errorlevel= set /p F=chose a directory if *%F%==* echo error & goto work :date set /p G=chose a date if *%G%==* echo error & goto date dir %F% > %F%file.txt find "%G%" %F%file.txt > %F%file2.txt del %F%file.txt for /F "tokens=3,4,5" %%A in (%F%file2.txt) do if not "%%A"==" )||(if exist %F%%%C type %F%%%C)) && echo ======================================================== del %F%file2.txt РТ141. 6.050901.065.013 ПЗ 10 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 11 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 12 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 13 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 14 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 15 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 16 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 17 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 18 Арк. Дата Підпис № докум. Арк. Змн. РТ141. 6.050901.065.013 ПЗ 19 Арк. Дата Підпис № докум. Арк. Змн. |
Посетителей: 1, из них зарегестрированных: 0, гостей: 1 Зарегистрированные пользователи: Подробно | Страница сгенерирована за 0.0919 сек. |