| Другое > Hard'n'Soft |
| Пакетный файл *.bat |
| (1/1) |
| Silver_Shadow:
При создании некого пакетного файла для дос (допустим c.bat) столкнулся с задачей это все суется на загрузучную дискету ДОС, и запускается с boot, т.е. загрузка вместе с компьютером мои действия такие: 1 создаю загрузочную дискето MS DOS средтсвами windows cую туда Autoexec.bat Код: if "%config%" = = "mx" goto max if "%config%" = = "mn" goto min :max SET PATH = C:\WINDOWS;A:\VC mode con codepage prepare = ((866) A:\ega3.cpi) mode con codepage select = 866 keyb ru,,A:\keybrd3.sys goto end :min set path = C:\WINDOWS;A:\VC :end Config.sys Код: [menu] menuitem = mx, max configuration menuitem = mn, min configuration [mx] device = A:\himem.sys dos = high,umb device = A:\display.sys con=(ega,,1) Country = 007,866,C:\country.sys [mn] device = C:\himem.sys dos = high,umb И дополнительно надо строчку добавить в Autoexec о вызове еще одного bat с задачей Вывод на экран всех выполняемых команд. Вывод на экран наличие в каталогах диска a: упакованных файлов расширения .rar, с подтверждением на вывод. Наверно во первых для выбора надо исп команду choice далее какой то фильтр для того чтобы выводились только запакованых файлов. Проверить, задано ли при вызове командного файла C_8.bat в качестве параметра имя проверяемого файла, если нет, то вывести соответствующее сообщение в файл TYP8 текущего диска. Если проверяемый файл имеется на диске a:, то скопировать его в новый каталог диска а:. Приостановить выполнение командного файла C_8.bat с выводом сообщения об этом на экран. Тут как я понял надо проверить есть ли на дискете файл, если нет то надо ввести в файл сообщение, если есть то скопировать куда нить. Вот никто незнает команду проверки? Кто нить работал с батниками? Может кто что подсказать? |
| Fly:
--- Цитата: Silver_Shadow ---Наверно во первых для выбора надо исп команду choice далее какой то фильтр для того чтобы выводились только запакованых файлов. --- Конец цитаты --- Для выбора да, использовать choice. А для вывода файлов *.rar во всех каталогах диска A: команда dir /s a:\*.rar Примерно так: --- Код: ---choice /C YN /M "Подтверждаете вывод" if errorlevel 2 dir /s a:\*.rar --- Конец кода --- --- Цитата: Silver_Shadow ---Тут как я понял надо проверить есть ли на дискете файл, если нет то надо ввести в файл сообщение, если есть то скопировать куда нить. Вот никто незнает команду проверки? --- Конец цитаты --- if exist <имя файла> |
| Silver_Shadow:
--- Цитата ---Для выбора да, использовать choice. А для вывода файлов *.rar во всех каталогах диска A: команда dir /s a:\*.rar --- Конец цитаты --- Точно! забыл про звездочку точка расширение, спасибо ща попробую |
| Silver_Shadow:
Еще одна проблема возникла --- Цитата ---Проверить, задано ли при вызове командного файла C_8.bat в качестве параметра имя проверяемого файла, если нет, то вывести соответствующее сообщение в файл TYP8 текущего диска --- Конец цитаты --- Вообщем проблема одна, есть ли команда в ДОС, записывающая текст в файл? .... |
| Fly:
Можно так --- Код: ---echo нужный_текст > имя_файла --- Конец кода --- |
| Silver_Shadow:
Fly, додумался уже -) но все равно спасиб хотя в самом echo в описании почему то это не описывается |
| Silver_Shadow:
Сегодня сдавал на проверку преподу, оказалась одна ошибка В задание сказано что - Проверить, задано ли при вызове командного файла C_8.bat в качестве параметра имя проверяемого файла, если нет, то вывести соответствующее сообщение в файл TYP8 текущего диска. - Так вот это не учел Я вот никак не пойму как сделать проверку имено задания файла с параметром проверяемого файла. То есть сначала идет Autoexec bat в нем вызов с.bat. Так я должен уже в код c.bat сделать проверку, - а не задано ли при вызове c.bat 1.txt(это проверяемый файл)? Т.е. если не задано в Autoexec.bat строка c.bat /1.txt то --- Цитата ---вывести соответствующее сообщение в файл TYP8 текущего диска --- Конец цитаты --- Вот, Каким образом это запмсать? никто не подскажет? |
| Fly:
Это в c_8.bat писать надо. Например, так: if not -%1 == -1.txt echo нужный_текст > TYP8 Добавлено позже: --- Цитата: Silver_Shadow ---вывести соответствующее сообщение в файл TYP8 текущего диска --- Конец цитаты --- Вот только не понял, что значит "текущего диска". Имеется ввиду корневая папка? |
| Silver_Shadow:
--- Цитата: Fly от 31 Май 2009, 00:21:33 ---Это в c_8.bat писать надо. Например, так: if not -%1 == -1.txt echo нужный_текст > TYP8 Добавлено позже: Вот только не понял, что значит "текущего диска". Имеется ввиду корневая папка? --- Конец цитаты --- Ну вообше все это запускается с флопи-дискеты. Для начала форматируем в MS-DOS format заменям config sys и autoexec config [menu] menuitem = mx, max configuration menuitem = mn, min configuration [mx] device = A:\himem.sys dos = high,umb device = A:\display.sys con=(ega,,1) Country = 007,866,C:\country.sys [mn] device = A:\himem.sys dos = high,umb Autoexec echo off if "%config%" == "mx" goto max if "%config%" == "mn" goto min :max SET PATH = C:\WINDOWS;A:\VC mode con codepage prepare = ((866) A:\ega3.cpi) mode con codepage select = 866 keyb ru,,A:\keybrd3.sys a:\c.bat goto end :min echo minimal configuration is disabled, please call techguide pause set path = C:\WINDOWS;A:\VC :end т.е меню появляется после загрузки компьютера выбирает в меню пункт "max" оно по идее запуска c.bat (у меня называется имено так, а с8.bat это в методичке так написано, я решил просто 8 убрать. А текущий диск это дискета вот c.bat echo off cls choice /C:YN /N "Look about *.rar files?" if errorlevel 2 goto b if errorlevel 1 goto a :a dir /s a:\*.rar goto c :b echo Don't want, not need :c if exist a:\1.txt md a:\ZZ copy a:\1.txt a:\ZZ if not exist a:\1.txt echo file not exist > a:\3.txt goto t :t type a:\3.txt echo Now that's closed pause А TYP8 у меня это 3.txt Проверяемый файл 1.txt А как указавать параметр в autoexec.bat для с.bat? просто написать c.bat /1.txt ? |
| Fly:
--- Цитата: Silver_Shadow ---А как указавать параметр в autoexec.bat для с.bat?просто написать c.bat /1.txt ? --- Конец цитаты --- Ещё проще: c.bat 1.txt :) Добавлено позже: Только такой вызов вроде как прервёт выполнение autoexec.bat. Чтобы не прервал, нужно писать call c.bat 1.txt |
| Silver_Shadow:
Fly, Спасибо =) --- Цитата: Fly от 31 Май 2009, 18:25:08 ---Только такой вызов вроде как прервёт выполнение autoexec.bat. Чтобы не прервал, нужно писать call c.bat 1.txt --- Конец цитаты --- Я проверял c.bat /1.txt - как шло так и идет, но буду делать по твоему совету :) |
| Навигация |
| Главная страница сообщений |