PDA

Просмотр полной версии : Помогите с bat файлом



Wildfire
17.11.2010, 12:45
В универе дали задание сделать батник. Ни лекций, ни методичек, ни примеров, в общем - классика :( .Уже неделю варюсь в собственном соку ( Знатоки, помогите чайнику :)
Задание:
Модификация командного файла TASM.BAT таким образом, чтобы было возможно вводить имена исходных файлов и без расширения имени, и с расширением .ASM. Предусмотреть также вывод на экран монитора содержимого файла листинга трансляции в постраничном режиме.
Заранее огромное спасибо :-)

Cheechako
17.11.2010, 22:03
В универе дали задание...
Такие забегаловки надо поголовно гнать улицы мести, здания же сносить и закатывать площадку асфальтом, чтобы неповадно было позорить понятие "университет" :mad:


Общая схема:
IF EXIST %1 GOTO LABEL1
IF EXIST %1.asm GOTO LABEL2
{сообщение об отсутствии файла и т.д.}
GOTO END

:LABEL1 bla-bla-bla (компиляция %1, ввод был в виде fname.asm)
GOTO END

:LABEL2
bla-bla-bla (компиляция %1.asm, ввод был в виде fname)

:END (дальнейшие действия)


Поэкранный вывод файла:type fname |MORE

где fname - получено на основании предыдущего (*.lst или ещё как в зависимости от ассемблера).
Если недостаточно DOS help'а, можно читать http://www.ossite.ru/ (http://www.ossite.ru/index.php?dir=os/dos/&file=comands), http://forum.xakep.ru (http://forum.xakep.ru/m_1512627/tm.htm), http://www.ossite.ru/ (http://www.cinetel.ru/faq/windows/207/) и т.п. :p

Wildfire
08.12.2010, 16:59
Такие забегаловки надо поголовно гнать улицы мести, здания же сносить и закатывать площадку асфальтом, чтобы неповадно было позорить понятие "университет" :mad:


Общая схема:
IF EXIST %1 GOTO LABEL1
IF EXIST %1.asm GOTO LABEL2
{сообщение об отсутствии файла и т.д.}
GOTO END

:LABEL1 bla-bla-bla (компиляция %1, ввод был в виде fname.asm)
GOTO END

:LABEL2
bla-bla-bla (компиляция %1.asm, ввод был в виде fname)

:END (дальнейшие действия)


Поэкранный вывод файла:type fname |MORE

где fname - получено на основании предыдущего (*.lst или ещё как в зависимости от ассемблера).
Если недостаточно DOS help'а, можно читать http://www.ossite.ru/ (http://www.ossite.ru/index.php?dir=os/dos/&file=comands), http://forum.xakep.ru (http://forum.xakep.ru/m_1512627/tm.htm), http://www.ossite.ru/ (http://www.cinetel.ru/faq/windows/207/) и т.п. :p

спасибо, но пока не получается ничего.
пишу в исполняемый файл
@echo off
cls
echo ************************************************** ****************
IF EXIST %1 GOTO Label1
IF EXIST %1.asm GOTO LABEL2
:LABEL1 WITHOUT
GOTO END
:LABEL2 WITH
:END
TYPE FNAME|MORE
PAUSE
пишет не могу найти файл, что я делаю не так?
предвещая ваш вопрос: да, тупой

Cheechako
09.12.2010, 03:01
...
TYPE FNAME|MORE
пишет не могу найти файл...
Если написано как есть, то для начала придётся заметить, что пробел имеет значение :)
- файл "FNAME|MORE" система найти не сможет (хотя бы из-за недопустимого в названии символа "|"), не говоря уже о том, что fname определять должно - i.e., для выполняющегося условия записывается
TYPE %1
или
TYPE %1.asm
соответственно (где %1 - переменная, задаваемая при запуске bat'а:
compile.bat fname.asm/compile.bat fname), но никак не абстрактное (не определённое) "FNAME".

Кроме того, для файлов в других директориях (или не заданных в PATH) следует указывать полное название файла, по принципу "с:\...\fname.ftype"; в случае "длинного" названия / наличия пробелов и проч. сомнительных символов используются кавычки, либо формат 8.3 -
type "C:\Program Files\Microsoft Office\Office12\excelcnvpxy.dll" |MORE
type C:\PROGRA~1\MICROS~2\Office12\EXCELC~1.DLL |MORE
(type для двоичного файла может привести к неожиданным результатам :p).

steven_scream
14.12.2010, 16:46
продолжение эпопей - чайник 2:
выполнение команды MODE из состава операционной системы для конфигурирования последовательных коммуникационных портов компьютера. Разработать систему меню для выбора параметров работы указанных устройств

ни метод, ни лекций, ни примеров, а сдача поджимает - помогите люди добрые :(

Cheechako
14.12.2010, 18:19
mode /? должно помочь :yes:
Однако выглядит это как розыгрыш - ну ладно лет 10-15 назад, когда народ не очень далеко отошёл от DOS'a...:confused: Сейчас-то кому всё это нужноИ?

Максимка86
28.12.2010, 16:47
Народ Подскажите пожалуйста ... по информатике...
Задание: Вывести на экран монитора номер наименьшего из значений трех параметров a1 , a2 , a3 если это значение > 0 и кратно 3, или сообщение "Результат отрицательный" в противном случае.

Спасибо...=)

Cheechako
28.12.2010, 17:21
Задание: Вывести на экран монитора номер наименьшего из значений...
Нескромно ссылаться на себя :yes:, однако почти только что предлагал принцип здесь (http://forum.ruboard.ru/showpost.php?p=104588&postcount=2); просто искать надо не наибольшее, а наименьшее значение (и для проверки кратности "3" делить/умножать не на 2, а на 3).
Однако зачем заниматься арифметикой в batсh-файлах - категорически не понимаю.