Страница 4 из 5

Добавлено: Вт янв 18, 2011 21:24
Flasher
Tol!k
Конечно, можно парсить по "86" и "64" одновременно. Но смысл? Вполне достаточно одного условия.

Добавлено: Ср янв 19, 2011 08:48
Flasher
Flasher писал(а):Что толку от этих нормальных имён для данной задачи, я пока не пойму?
В общем-то, я понял в чём преимущество - будет проще работать с параметрами комстроки, с ключами.
MVV, резон. Не то, чтобы это понадобилось мне, но всё-таки если будет возможность - сделай библиотечку. Изображение

Совсем забыл про OS_ARCHITECTURE спросить. На 64 из ТС что у кого показывает?
i1 писал(а):Решил так: создал две папки с именами %PROCESSOR_ARCHITEW6432% и AMD64. В первой лежат файлы x86, во второй — x64.
На x64 будет работать только с камнем AMD, поэтому пока мой вариант предпочтительней. Либо придётся создавать жёсткие ссылки (если флешка в NTFS) с путями ...\Intel64\... и ...\EM64T\...

Добавлено: Ср янв 19, 2011 11:17
Loopback
Flasher писал(а):MVV, резон. Не то, чтобы это понадобилось мне, но всё-таки если будет возможность - сделай библиотечку.
Можно, конечно, и и дополнительным плагином, но мне кажется, лучше сделать более универсальный способ. Давно думал добавить в плагин возможность макросов (констант) - т.е. некоторых значений, вычисляемых на каждой системе. Тогда можно будет просто устанавливать переменную окружения встроенной функцией.

Добавлено: Ср янв 19, 2011 11:22
Flasher
Loopback
Ну, так это совсем другой разговор. Займись на досуге. :wink:

Добавлено: Ср янв 19, 2011 13:11
i1
Flasher писал(а):На x64 будет работать только с камнем AMD, поэтому пока мой вариант предпочтительней. Либо придётся создавать жёсткие ссылки (если флешка в NTFS) с путями ...\Intel64\... и ...\EM64T\...
Нет, на всех x64 переменная будет равна AMD64, сам сейчас проверил.

Добавлено: Ср янв 19, 2011 13:30
Flasher
i1
Странная переменная, коли так. На Itanium должно быть IA64.
А то, что я просил выше, проверялось?

Добавлено: Ср янв 19, 2011 13:31
MVV
Flasher писал(а):На x64 будет работать только с камнем AMD, поэтому пока мой вариант предпочтительней.
i1 писал(а):Нет, на всех x64 переменная будет равна AMD64, сам сейчас проверил.
Не нужно путать тип процессора и архитектуру. Архитектура всех 64-битных систем называется AMD64, т.к. первой её запатентовала (или не помню, как это правильнее сказать) AMD.

Loopback писал(а):Можно, конечно, и и дополнительным плагином, но мне кажется, лучше сделать более универсальный способ. Давно думал добавить в плагин возможность макросов (констант) - т.е. некоторых значений, вычисляемых на каждой системе. Тогда можно будет просто устанавливать переменную окружения встроенной функцией.
Думаю, эту часть можно оформить в виде отдельного плагина:) тогда те, кто в ней не нуждается, не будут таскать ее с собой, а тем, кто будет использовать, разницы никакой. Да и обновлять маленькую библиотечку проще, чем большую.

Добавлено: Ср янв 19, 2011 13:40
Flasher
MVV писал(а):Не нужно путать тип процессора и архитектуру.
Я не путаю. Я вижу что показывает переменная, и архитектура моего процесcора не x86, а x86-64. Обрати внимание на значение у Вахмурки, которое соответствует архитектуре оси. И прочти что тут написал CaptainFlint. Как эмуляция может влиять на архитектуру процессора?
MVV писал(а):Архитектура всех 64-битных систем называется AMD64, т.к. первой её запатентовала (или не помню, как это правильнее сказать) AMD.
Здесь "т.к." совсем не кстати. По Itanium см. выше.

Добавлено: Ср янв 19, 2011 16:04
i1
Flasher писал(а):Совсем забыл про OS_ARCHITECTURE спросить. На 64 из ТС что у кого показывает?
Это же не стандартная переменная, а добавляется по скрипту Tol!k, как я понял.
Flasher писал(а):Странная переменная, коли так. На Itanium должно быть IA64.
Да, здесь и сказано, что будет IA64.

Добавлено: Ср янв 19, 2011 17:31
Flasher
i1 писал(а):Это же не стандартная переменная, а добавляется по скрипту Tol!k, как я понял.
Я что-то не могу вспомнить - запускал я его или нет. :? Вроде бы даже не копировал. Хотя..
i1 писал(а):Да, здесь и сказано, что будет IA64.
Ну, значит не на всех. :wink:

Добавлено: Ср янв 19, 2011 17:33
i1
Flasher писал(а):Я что-то не могу вспомнить - запускал я его или нет. :? Вроде бы даже не копировал. Хотя..
Сейчас попробовал в консоли — "переменная среды не определена". Скрипт не запускал.

Добавлено: Ср янв 19, 2011 17:52
Tol!k
i1, там какие-то заморочки с .сом-файлами
Попробуй так

Код: Выделить всё

@echo off
if defined OS_ARCHITECTURE (set OS_ARCHITECTURE &goto :end)
for /f "tokens=3 delims=:- " %%a in ('systeminfo ^|findstr /rc:"-based PC$"') do (
setx OS_ARCHITECTURE %%a
set OS_ARCHITECTURE=%%a
)
:end
а setx.exe положи рядом

Добавлено: Ср янв 19, 2011 19:27
MVV
Tol!k писал(а):Попробуй так

Код: Выделить всё

@echo off
if defined OS_ARCHITECTURE (set OS_ARCHITECTURE &goto :end)
for /f "tokens=3 delims=:- " %%a in ('systeminfo ^|findstr /rc:"-based PC$"') do (
setx OS_ARCHITECTURE %%a
set OS_ARCHITECTURE=%%a
)
:end
а setx.exe положи рядом
А разве возможно передать локальную переменную окружения из окружения процесса в окружение процесса-родителя?
Flasher писал(а):
MVV писал(а):Архитектура всех 64-битных систем называется AMD64, т.к. первой её запатентовала (или не помню, как это правильнее сказать) AMD.
Здесь "т.к." совсем не кстати. По Itanium см. выше.
Да, я имел в виду традиционную архитектуру, IA - это вообще другая песня.

Добавлено: Ср янв 19, 2011 20:23
Tol!k
MVV
setx.exe установит глобальную переменную.
А если что-то дописать после :end (напр. totalcmd.exe) то для него будет действовать локальная

Добавлено: Пт янв 21, 2011 04:06
Factotum
может я чего не понял, но работает це навернека

Код: Выделить всё

if exist "%ProgramFiles(x86)%" goto WIN64