%PROCESSOR_ARCHITECTURE% в wincmd.ini и совместимость Win9X
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
%PROCESSOR_ARCHITECTURE% в wincmd.ini и совместимость Win9X
Есть загвоздка с компоновкой 32 и 64 битных версий тотала (на флешку) софтом соответствующей разрядности. Например, тот же Akelpad и RAR - вполне себе есть под обе версии.
Пока обхожусь двумя wincmd.ini для использования х64 софта на ТС64, но это немного геморно, т.к. это требует ключа /i, что не всегда приемлемо.
Но посетила меня мысль - обозвать, например, путь к Akelpad через переменную "%PROCESSOR_ARCHITECTURE%".
Т.е., вместо привычного
Editor=%COMMANDER_PATH%\Plugins\exe\AkelPad\AkelPad.exe
будет
Editor=%COMMANDER_PATH%\Plugins\exe\AkelPad_%PROCESSOR_ARCHITECTURE%\AkelPad.exe
Только один нюанс вылазит - на Win9X подобный трюк не прокатит (там просто нет такой переменки).
Собственно, вопросы:
1. Кто как решал задачу совместной работы двух разрядностей тоталовского редактора для F4 и архиватора RAR?
2. Есть ли смысл воротить огород с именно этой переменной, или есть варианты получше? (но чтоб обойтись одной универсальной строкой на оба варианта!)
3. Наслышан, что %PROCESSOR_ARCHITECTURE% имеет больше двух значений (внезапно!). Как обойти?
П.С.
Вариант с созданием временных переменных и прочей требухи не проходит, т.к. это надо на флешку, на разные системы, где в большинстве случаев нет ни админских прав, ни прочих радостей автоматизации.
Пока обхожусь двумя wincmd.ini для использования х64 софта на ТС64, но это немного геморно, т.к. это требует ключа /i, что не всегда приемлемо.
Но посетила меня мысль - обозвать, например, путь к Akelpad через переменную "%PROCESSOR_ARCHITECTURE%".
Т.е., вместо привычного
Editor=%COMMANDER_PATH%\Plugins\exe\AkelPad\AkelPad.exe
будет
Editor=%COMMANDER_PATH%\Plugins\exe\AkelPad_%PROCESSOR_ARCHITECTURE%\AkelPad.exe
Только один нюанс вылазит - на Win9X подобный трюк не прокатит (там просто нет такой переменки).
Собственно, вопросы:
1. Кто как решал задачу совместной работы двух разрядностей тоталовского редактора для F4 и архиватора RAR?
2. Есть ли смысл воротить огород с именно этой переменной, или есть варианты получше? (но чтоб обойтись одной универсальной строкой на оба варианта!)
3. Наслышан, что %PROCESSOR_ARCHITECTURE% имеет больше двух значений (внезапно!). Как обойти?
П.С.
Вариант с созданием временных переменных и прочей требухи не проходит, т.к. это надо на флешку, на разные системы, где в большинстве случаев нет ни админских прав, ни прочих радостей автоматизации.
Mellomann
Переливаем из пустого в порожнее?
Переливаем из пустого в порожнее?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Так-то мысль уже давно не свежая, но на практике вылазит несостоятельность пройденных "решений" из тех тем...
Итак, дабы три раза не вставать:
1. Установка ещё одной переменной - не подходит.
2. Вариант консольного монстра if exist.... else.... - не подходит.
3. Привязка к внешней запускалке - не подходит.
Да и основной вопрос - работа на Win9X (о да, я к некрофилам тоже хожу) - не раскрыт.
Несмотря на особенности именно этой переменной - чую, что это самое надёжное решение, но хотелось бы знать наверняка, вдруг что получше есть...
Есть другие идеи?
Итак, дабы три раза не вставать:
1. Установка ещё одной переменной - не подходит.
2. Вариант консольного монстра if exist.... else.... - не подходит.
3. Привязка к внешней запускалке - не подходит.
Да и основной вопрос - работа на Win9X (о да, я к некрофилам тоже хожу) - не раскрыт.
Несмотря на особенности именно этой переменной - чую, что это самое надёжное решение, но хотелось бы знать наверняка, вдруг что получше есть...
Есть другие идеи?
1, 3 - на Win9x не пробовал, на остальных проблем не встречал.
Т.е. будет работать и такая канительи в F4Menu и где бы то ещё ни было. Но я лично предпочёл 32 нигде не писать.
А упомянутый в стартовом посте подход с разбивкой вариантов программы на папки давно утерял актуальность.
Т.е. будет работать и такая канитель
Код: Выделить всё
Editor=%COMMANDER_PATH%\Utils\AkelPad\AkelPad_%OSARCH%.exeА упомянутый в стартовом посте подход с разбивкой вариантов программы на папки давно утерял актуальность.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher
AutoRun работает только на WinNT - Win2000 и выше - если верить документации.
Mellomann
Не уверен, что можно подружить х86+х64 и Win9x. Как мне кажется, имеет смысл подружить х86 и х64 с помощью внутренней переменной и добавить батник, определяющий, что ОС Win9x, и запускающий ТСх86 с ключом /i и wincmd9x.ini.
Вместо батника, наверное, можно использовать AutoIt 3.2.12.1, VBScript не прокатит, предполагаю, - для определения ОС обычно используется WMI.
AutoRun работает только на WinNT - Win2000 и выше - если верить документации.
С чего вдруг? Далеко не для всех программ возможно объединить обе разрядности в одной папке.Flasher писал(а):А упомянутый в стартовом посте подход с разбивкой вариантов программы на папки давно утерял актуальность.
Mellomann
Не уверен, что можно подружить х86+х64 и Win9x. Как мне кажется, имеет смысл подружить х86 и х64 с помощью внутренней переменной и добавить батник, определяющий, что ОС Win9x, и запускающий ТСх86 с ключом /i и wincmd9x.ini.
Вместо батника, наверное, можно использовать AutoIt 3.2.12.1, VBScript не прокатит, предполагаю, - для определения ОС обычно используется WMI.
Даже если так, утверждения по списку шли до "Да и основной вопрос ...".Skif_off писал(а):AutoRun работает только на WinNT - Win2000 и выше - если верить документации.
Согласен. Хотя сути решения это не меняет.Skif_off писал(а):Далеко не для всех программ возможно объединить обе разрядности в одной папке.
Насчёт прокатит или нет на Win9x ответить не возьмусь, а вот про "обычно" - неправда.Skif_off писал(а):VBScript не прокатит, предполагаю, - для определения ОС обычно используется WMI.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
От столь искушённого в VBScript можно было бы и поподробнееFlasher писал(а):а вот про "обычно" - неправда.
По идее можно читать в реестре, правда, навскидку не вспомню, где.
Skif_off
Меня тоже память не особо подводит. Если это и имеет смысл обсудить, то не думаю, что здесь.
Меня тоже память не особо подводит. Если это и имеет смысл обсудить, то не думаю, что здесь.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Бред.подход с разбивкой вариантов программы на папки давно утерял актуальность
/i требует полного абсолютного пути к ini файлу, иначе не подхватывается. Если б не эта проблема - проблемы бы не было.добавить батник, определяющий, что ОС Win9x, и запускающий ТСх86 с ключом /i и wincmd9x.ini
Опять 25...батник, который будет ставить переменные
Не вариант, заблокировано групповыми политиками.VBScript
Эх.... Всё - тлен.
Не бред, если понимаешь о чём речь и с чьей стороны разбивка. Читаем внимательно приведённые топики.Mellomann писал(а):Бред.
%CD% в 9x нет разве?Mellomann писал(а):Если б не эта проблема
Разблокируй. Там можно что угодно заблокировать, в т.ч. запуск Тотала.Mellomann писал(а):Не вариант, заблокировано групповыми политиками.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
???Mellomann писал(а):/i требует полного абсолютного пути к ini файлу, иначе не подхватывается. Если б не эта проблема - проблемы бы не было.
Раз требует - передайте
cmd:
Код: Выделить всё
start %~dp0\TOTALCMD.EXE /i=%~dp0\wincmd9x.iniКод: Выделить всё
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run(WshShell.CurrentDirectory & "\TOTALCMD.EXE /i=" & WshShell.CurrentDirectory & "\wincmd9x.ini")Flasher
Пример же, а не готовое решение
[cut]К тому же чаще пользуюсь AutoIt и реже JScript, по мне удобнее:
не привык бодаться с удвоением кавычек
[/cut]
Пример же, а не готовое решение
[cut]К тому же чаще пользуюсь AutoIt и реже JScript, по мне удобнее:
Код: Выделить всё
Run('"' & @ScriptDir & '\TOTALCMD.EXE" /i="' & @ScriptDir & '\wincmd9x.ini"')Код: Выделить всё
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("\"" + WshShell.CurrentDirectory + "\\TOTALCMD.EXE\" /i=\"" + WshShell.CurrentDirectory + "\\wincmd9x.ini\"");
Последний раз редактировалось Skif_off Вс сен 20, 2015 10:27, всего редактировалось 1 раз.
Skif_off
Я имел в виду не только vbs, но и батник, в котором, кстати, start не нужен.
Во всех случаях нужен как минимум ключ /N. На vbs скобки в Run нужны только для кода выхода.
[cut]Не знаю, что понимать под "бодаться", но вот то, что в js не Create, а new ActiveX тебе, думаю, должно быть известно.
[/cut]
Я имел в виду не только vbs, но и батник, в котором, кстати, start не нужен.
Во всех случаях нужен как минимум ключ /N. На vbs скобки в Run нужны только для кода выхода.
[cut]Не знаю, что понимать под "бодаться", но вот то, что в js не Create, а new ActiveX тебе, думаю, должно быть известно.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.