Имя: Пароль:
IT
 
Хочу написать bat файл ...
0 Konst999
 
30.12.05
09:17
Подскажите, у меня есть dos программа для программирования считывателя магнитных карт. В данном устройстве отсутствует память и естественно при каждом выключении компьютера, все параметры сбрасываются. Хочу написать bat файл и вставить его в AUTOEXEC.bat. Но вот проблема, понятно для запуска программы мы прописываем start ... , а далее в программе надо нажимать различные буквы и после них enter, ну, например, A enter, G enter, K enter. Вот теперь ломаю голову как в bat прописать такое чудо.
1 romix
 
модератор
30.12.05
09:18
Я писал такую прогу на Турбо Паскале, щас попробую нарыть...
2 romix
 
модератор
30.12.05
09:19
Хотя если прокатит попробуй использовать перенаправление ввода

Прога.exe < ФайлССимволами.txt
3 Ёжик в тумане
 
30.12.05
09:19
(0) Если я правильно понял, то выходит, что ты надеешься пакетным файлом работать внутри интерфейса самой DOS-программы.
4 romix
 
модератор
30.12.05
09:20
(3) Я такое для одной глючной досовской кассы делал.
5 Konst999
 
30.12.05
09:22
1)Да мне один спец сказал, что можно bat прописать. Но вот его через пару месяцев увижу, а мне сейчас надо.
6 Ёжик в тумане
 
30.12.05
09:22
(4) Неужто? Именно за счёт пакетного файла?
7 romix
 
модератор
30.12.05
09:24
(6) Если прога стандартная консольная, то там работает "юниксовое" перенаправление консоли как в (2). Если нет, то работает заполнение буфера клавиатуры INT 16.
8 Ёжик в тумане
 
30.12.05
09:25
(5) Это всё уместно, если эта дремучая программа поддерживает запуск с ключами. Но про "в программе надо нажимать различные буквы" весьма сомнительно.
9 Ёжик в тумане
 
30.12.05
09:26
(7) Причём тут "юникс"?
10 Ёжик в тумане
 
30.12.05
09:26
(7) Причём тут "юникс"?
11 Ёжик в тумане
 
30.12.05
09:26
Оо.. давно таких глюков не было..
12 smaharbA
 
30.12.05
09:27
Могу попробовать решить... тока 5-6 нераньше...
13 romix
 
модератор
30.12.05
09:27
(9) При том что MS-DOS частично слизана с юникса. Только слеши в обратную строну повернуты. :-)
14 GrayT
 
30.12.05
09:27
(0)Вопрос с похмелья - а что за операционка? Я к вопросу об аутоехес.бат - выполняться будет?
15 GrayT
 
30.12.05
09:27
(13)Епнулся чтоль?
16 Ёжик в тумане
 
30.12.05
09:28
(13) Уже празднуешь? Или болеешь?
17 smaharbA
 
30.12.05
09:30
Могут помоч stdout и stdin, но не факт...
18 romix
 
модератор
30.12.05
09:41
(15,16) Читайте букварь

http://education.aspu.ru/view.php?olif=gl7#34

Перенаправление осуществляется с помощью специальных конструкций командного языка. Для указания интерпретатору о необходимости перенаправить стандартный ввод на файл file используется следующая конструкция:

   < file

Для перенаправления стандартного вывода требуется следующая конструкция:

   > file

Например, показанная ниже командная строка запишет данные о содержимом каталога dir2 в файл a.txt:

   ls dir2 > a.txt

Механизм перенаправления ввода-вывода, введенный ОС UNIX, получил широкое распространение в интерпретаторах команд многих операционных систем, например MS-DOS, Windows, OS/2.
19 GrayT
 
30.12.05
09:44
(18)Это не значит что реализация этого механизма слизана с юникс.
Историю создания ДОС и причину столь широкого распространения достаточно говенной операционнй системы знаешь?
20 Ёжик в тумане
 
30.12.05
09:52
(18) Ты как обычно спутал тёплое с мягким.
Речь не о передаче текстового ввода/вывода, а о работе внутри интерфейса программы. Самое большее, на что способна подобная программа - анализировать ключи запуска.
21 Konst999
 
30.12.05
09:55
Что-то ерунда получается: webfile.ru/722202, размер 68 Кбайт.
22 romix
 
модератор
30.12.05
09:55
Если (18) не сработает, то потребуется писать в буфер клавиатуры напрямую:
http://pascal.sources.ru/keyboard/keystuff.htm

Свою прогу для этого дела я к сожалению не могу найти.
Другие люди тоже ее писали: поисковый запрос в Яндекс:
"имитация нажатия клавиш в DOS"
23 smaharbA
 
30.12.05
10:01
вот вариант без ентера
echo y|del *.*
когда небыло /q
или
echo 12:00|time
24 romix
 
модератор
30.12.05
10:12
(+23) Еще вариант:

del *.* < y.txt

А в файле y.txt надо вбить Y и Enter (2 символа)
25 romix
 
модератор
30.12.05
10:13
К сожалению многие DOS-проги работают не через интерфейс DOS (где работает "юникосовое" перенаправление, а обращаются к BIOS Int 16h напрямую.
26 Konst999
 
30.12.05
10:18
23) Что-то не догоняю. Мне надо запустить файл MSR.exe и там нажать клавишу A, S, Q. Делаю start MSR.exe, а дальше что писать? http://webfile.ru/722202
27 Konst999
 
30.12.05
10:21
echo a|start MSR.exe
28 Konst999
 
30.12.05
10:22
Буквы даже без enter-а
29 Konst999
 
30.12.05
10:49
Так срабатывает: echo a|MSR.exe. Но мне еще нужно нажать s и q.
30 Konst999
 
30.12.05
10:50
И почему-то виснет USB клавиатура.
31 romix
 
модератор
30.12.05
10:50
(29)

Текстовичок создай где есть буквы
a
s
q


(в конце - завершающий Enter).

MSR.exe < текстовичок.txt
32 romix
 
модератор
30.12.05
10:51
Сорри если без ентера, то и текстовичок должен быть без ентеров.

Или так:

echo asq|MSR.exe
33 Konst999
 
30.12.05
10:57
Да, с echo asq|MSR.exe получилось. Всем спасибо за помощь. Очень помогли.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.