|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.07.2022, 10:36 | #1 |
Новичок
Джуниор
Регистрация: 09.07.2022
Сообщений: 3
|
Пакетный файл (batch file), pascal, assembler - метка ДАТЫ/ВРЕМЕНИ
Задача: В чистом DOS'е 7.10 (НЕ под Windows cmd.exe!), в пакетном файле
переменной присвоить значение "метки времени" вида MMDD_HHMN (0709_0857) с "ведущим" нулем. Учитывая: В чистом DOS'е - НЕ работают конструкции(команды, переменные) вида - %DATE% , %TIME% , set /a TMP=... , set /p TMP=... , for...token.... и т.д. 1. Был применен "костылик" на pascal'е типа - Код:
а в переменную вызывающего batch файла впихнуть не могу... или кто умеет? (pascal, как собака, все читает, а писать нее... функция Exec() - не помогла..) 2. я готов "глобальной" переменной TMP (обьявленной еще в AUTOEXEC.BAT) присвоить - set TMP=1234_6789 (9 байт, чтоб длина совпала!) вызвать свой DTstamp.exe (в котором получаю метку MMDD_HHMN) и вот тут: нужен кусок кода на assembler'е, который "впердолит" эти 9 байт в область PSP никого не спрашивая.... (я видел, он умеет спросить адрес - где лежит TMP?) и этот "кусок кода" - в той же программе pascal'я, TASM умеет, я проверял.. после выхода из DTstamp.exe, я попользуюсь TMP... и... или верну "как было", или при выходе из batch-файла "само вернется".. проверить надо... Помогите с "куском кода"... Заранее благодарю! |
09.07.2022, 13:38 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Просто запишите значение в C:\temp.bat файл в виде
Код:
|
09.07.2022, 17:31 | #3 |
Новичок
Джуниор
Регистрация: 09.07.2022
Сообщений: 3
|
Что-то не понял мысль... (старею.. тупею...)
|
09.07.2022, 19:13 | #4 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,646
|
Насколько можно понять условие задачи, то решаться она должна именно на ДОС, а не сторонней утилитой. Можно поиграться с командами date и time, но как оно будет работать в DOS 7.10, если честно, мне неизвестно, так как с таким старьем не работаю.
E-Mail: arigato.freelance@gmail.com
Последний раз редактировалось Arigato; 09.07.2022 в 19:17. |
09.07.2022, 20:37 | #5 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Записываете последовательность команд
Код:
Код:
Этот вариант гораздо проще чем поиск в памяти корневого окружения. DOS 7.10 для каждой запущенной программы создает собственный блок переменных окружения, на которые ссылается слово PSP[44] = сегментный адрес начала локального окружения. После завершения программы это окружение более не будет иметь значения и будет восстановлено на состояние до запуска. Это означает, что вам необходимо найти в памяти положение корневого блока переменных окружения и менять значения там. Можете сами это попробовать реализовать и поймете, что это геморрой! |
09.07.2022, 21:37 | #6 |
Новичок
Джуниор
Регистрация: 09.07.2022
Сообщений: 3
|
macomics
О! теперь понял... Вы правы, так проще.. Спасибо! То-же самое посоветовали - https://www.cyberforum.ru/cmd-bat/thread3006587.html проверил, работает! "облагораживать" буду... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метка времени в электронном документе | Nikonico | Общие вопросы по программированию, компьютерный форум | 11 | 24.12.2018 16:00 |
Разработать пакетный файл для установки даты и времени | virus77724 | Помощь студентам | 3 | 06.04.2014 17:38 |
Batch file в Delphi | kotaina | Общие вопросы Delphi | 3 | 22.08.2011 13:48 |
Запись текущей даты времени в текстовый файл | kanich | Помощь студентам | 3 | 07.09.2010 13:05 |
Вывод даты и времени (assembler) | olen` | Помощь студентам | 0 | 05.06.2009 22:45 |