Общеизвестно, что при запуске DOS-приложений размер окружения (Environment) ограничивается по-дефолту вполне определенной величиной (в XP, например, это значение равно 256 байт, если я правильно понял ). Как это проявляется ? Ну, вот, например, у вас есть переменные среды, в том числе и PATH, которые заданы средствами Windows (Мой Компьютер => Свойства => Дополнительно => Переменные Среды). При запуске DOS-приложений стартует виртуальная машина DOS-задач NTVDM, которая запускает command.com, получающий из всего пула переменных среды блок размером в 256 байт. То есть, если PATH у вас был длинный (а такое часто случается при установке приложений в папку Program Files, которые добавляют в переменную PATH пути к своим бинарниками или либам), то для DOS-задачи он будет урезан.
В частности, например, у меня приложение FPD 2.6 не видело свой конфигурационный файл config.fp, который был прописан в PATH файла Autoexec.bat. Оказалось, что просто содержимое файла Autoexec.bat при старте DOS-задачи _добавляется_ к содержимому переменной PATH, а так как PATH уже и так длинный, то хвост просто усекался и всё :)
Погуглив на эту тему, нашел вариант увеличения размера среды окружения, когда в файл Config.nt, лежащий в папке Windows\System32, добавляется строка
Shell = c:\Windows\System32\Command.com /p /e:2048
(где вот эти "2048" и есть зарезервированный минимум размера среды окружения в байтах).
Но этот вариант у меня почему-то не сработал.
В общем, пришлось сделать не совсем красиво: записать в Autoexec.nt строку
SET PATH = Нужный_Каталог;%PATH%
В этом случае "урезание" среды всё равно выполнятся, но за счет того, что требуемый каталог (каталоги) расположены в самом начале переменной PATH, им удается уцелеть. Вот такой костыль, я бы сказал.
Комментариев нет:
Отправить комментарий