Из-за очень старого оборудования я вынужден запустить Windows 3.1, которая управляет плоттером. Программное обеспечение, которое я использую, создает файл .bat со следующей строкой:
SPLOT.EXE/fmyfile.uc c:\myfile.plt
/f - это параметр, который следует по имени файла для преобразованного выходного файла. Проблема возникает, когда имя файла начинается с номера 1 или 2, затем splot.exe пытается вывести на порты COM1 или COM2 вместо создания файла .uc. Поскольку я не могу контролировать, как этот файл .bat создавался, мое единственное решение - создать собственный файл splot.exe как "загрузчик", который будет выполнять оригинальный файл splot.exe (я переименовал его в splotOrg.exe) с временным именем файла, затем переименуйте этот временный файл в правильное имя файла.
Поэтому я придумываю следующий файл .bat, который позже преобразовал в .exe с помощью Advanced BAT в EXE Converter:
@echo off
set str=%1
splotOrg.exe/ftempfile %2
ren tempfile %str:~2%
Это прекрасно работало из окна Windows 7 CMD, но когда я запустил его из истинной MSDOS 4.0, это не удалось. Оказалось, что % str:~ 2%, который должен обрезать первые 2 символа из переменной% str%, работает только с расширениями Windows 98+ или чем-то в этом роде.
К сожалению, я не знаю языков программирования низкого уровня, поэтому я ограничен простыми языками сценариев.
Может кто-нибудь предложить, как я могу создать файл .exe для MSDOS 4.0, который будет делать следующее:
- принять два аргумента командной строки, разделенных пробелом, давайте назовем их $ arg1 и $ arg2
- выполнить:
splotOrg.exe/ftempfile $arg2
- вырежьте /f из $ arg1, чтобы /fmyfile.uc стал myfile.uc
- переименуйте tempfile в новое имя $ arg1