Victor_VG

Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору DCT Тут сложнее - внутри основной 64-х битной ОС запускается 32-х битная исполнительная подсистема и необходимые системные вызовы транслируются к основному 64-х битному ядру с преобразованием путей - происходит редирект. Но эта штука довольно коварная в плане того, что в заданные в 32-х битной подсистеме пути могут быть корректны именно в ней, а в 64-х битной части ОС возможно возникновение ошибок с путями к раздельным системным ресурсам. Например когда сам встретился с таким фактом - в Far Manager x86 (32 бит) создал ярлык для установленной в %Program Files% х64 программы. В 32-х битной подсистеме всё выглядело корректно, а в 64-х битной увидел записи пути "C:\Program Files (x86)\" - редирект сработал, в итого ОС вывела ошибку "Путь не найден". Понятно поправил, но запомнил что редирект может и так срабатывать. Использование setx вещь не рекомендуемая т.к. эта программа написана для WinXP beta 1 и уже в XP SP3 была условно совместима с возможностями ОС, а после стала просто устаревшей. В то же время решение со встроенной командой setlocal появилось ещё в наборе команд ОС МP/M и СР/М откуда было перенесено ("за ночь в моём гараже Стив на основе переданных нам IBM исходников DR-DOS создал MS DOS" /Б. Гейтс, история создания MS DOS/) в MS DOS, а позднее включено в набор команд ОС IBM OS/2 и MS Windows NT. Что до сути, от вашего батника там только переменной среды общего, а всё остальное стандартные возможности ОС. setlocal [?] , set [?], start [?] И у скрипта есть один существенный недостаток - он не зависит от разрядности ОС и вызываемой программы. Только от возможностей ОС. А сопоставить ему через настройки ярлыка иконку дело элементарное. Зато решения типа аутоит, batch2exe ценная штука - в ОЗУ повисает кот в мешке. В морг их! Что до gimprc то в UNIX *rc это просто файлы, а конфиги обычно именуются *.conf и на винде не применимы. В ОС некоторые переменные среды могут менять своё значение в зависимости от контекста вызова, а часть такие как %PATH%, %SysDrive%, %SysDir% постоянны. Поэтому батник из [?] одинаково отработает с любой разрядностью GIMP и 32 и 64. И если попытаться запустить 32-х битный GIMP в 64-х битной ОС ничего страшнее его запуска в её 32-х битной подсистеме не произойдёт. Ну, разве что GIMP x86 будет ограничен в возможности поместить в ОЗУ большие изображения т.к. по умолчанию 32-х битной программе доступно до 2Гб ОЗУ, а 64-х битной до 16 Гб. А зачем использовать редактор переменных среды setx там, где в батнике команды set достаточно? Чтобы сначала добавить переменную среды, завершить сеанс консоли, а после вызывать консоль снова и ввести команду - см. Примечания 2) и 3) в справке SETX: Цитата: 2) На локальном компьютере переменные, созданные или измененные данным средством, будут доступны в будущем окне командной строки, но не в текущем окне CMD.exe. 3) На удаленном компьютере переменные, созданные или измененные данным средством, будут доступны со следующего сеанса входа. | ? Команда set применяется к любой переменной среды немедленно, и если нам надо объявить действующую в пределах скрипта данного скрипта переменную или временно изменить любую существующую переменную среды предотвратив конфликт с другими программами есть встроенная команда CMD setlocal. Зачем усложнять простое? Команда setx решает совсем иные задачи и её применение в вашем скрипте делает его заведомо неработоспособным. Добавлено: Цитата: Интереснее было бы задать там GIMP2_DIRECTORY | Во первых GIMP ищет свои модули относительно каталога ./bin, во вторых программы очень не любят когда в их конфиги вписывают посторонние записи. И обычно ругаются и сбрасывают настройки в умолчание. Либо просто не стартуют.
---------- Жив курилка! (Р. Ролан, "Кола Брюньон") Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti |
| Всего записей: 35194 | Зарегистр. 31-07-2002 | Отправлено: 00:38 22-03-2018 | Исправлено: Victor_VG, 01:37 22-03-2018 |
|