-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
%PROCESSOR_ARCHITECTURE% #61
Comments
if defined PROCESSOR_ARCHITEW6432 (PUSHD "x86_64")
else if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (PUSHD "x86_64")
else (PUSHD "x86") В PROCESSOR_ARCHITEW6432 может быть не только AMD64, а например IA64. |
Видимо, 32-битный Total Commander запускает 32-битный интерпретатор. Исправлю в следующем релизе. |
Подтверждаю. Тоже столкнулся с этим. У меня из-за некоторых плагинов запускается в меркантильных целях 32-битный Тотал на х64 системе. Правда, ФАР х64 и в нем все ок с запуском этих батников. :) |
Ребят, это не баг, а адекватная работа подсистемы WOW64. Сделана для работы 32bit приложений в 64bit системе. Реализуется с помощью библиотеки Wow64win.dll. IA64 в режиме WOW64 происходит ресурсоемкая эмуляция x86 инструкций, а значит %PROCESSOR_ARCHITECTURE% выводит верную инфу. |
tarelka95 тем не менее служба по запуску service_install_russia_blacklist.cmd не работает. пришлось заменить файлы в x86 из x86_64 и все заработало. так что может быть WOW64 определяет правильно но программа обращается в папку x86 для запуска из службы а система x64 |
Запускайте из 64-битного приложения. |
Вот как не пытаюсь проблему воспроизвести, не получается у меня сообщения "error opening filter: the system cannot find the file specified", все нормально грузит =) |
wget отсутствует в стандартной поставке, он устанавливается либо вместе с cygwin, либо вместе с Linux subsystem. |
offtop: По поводу быстрее и надежнее, лучше бы воспользовались cURL.
|
Немного не понял, этот код батника для будущего релиза? |
AlexeyRich, если ValdikSS позаимствует для будущего реализа, то да. |
" надеюсь ValdikSS не обидется." |
При попытках запуска из total commander наборов cmd файлов, таких как "1_russia_blacklist.cmd", отвечает "error opening filter: the system cannot find the file specified", что обусловлено неверным выбором разрядности приложения. При одном только запуске goodbyedpi.exe из total commander напрямую, все cmd файлы потом начинают нормально работать до первой перезагрузки компьютера и дальнейшего запуска cmd.
Выяснилось, что среда интерпретатора cmd может быть 32 и 64 разрядная, и далеко не во всех случаях на 64 битных системах запускается 64 битный интерпретатор. total commander инициирует 32 разрядную при запуске cmd файла. По крайней мере, в моей версии так, и кто его знает при каких обстоятельствах и способов запуска (планировщик, вызов из другого пакетного файла или приложения) оно задетектит не так, как надо, снова. Пробовал на двух машинах Windows 7 64. Проверяется проверкой сред так:
Для cmd, запущенного из total commander
Для "Пуск>выполнить>cmd"
Гуглится по "PROCESSOR_ARCHITEW6432". https://blogs.msdn.microsoft.com/david.wang/2006/03/27/howto-detect-process-bitness/ . Тут говорят про правильную логику определения архитектуры.
Я бы предложил такую логику по варианту "OR":
На правильность исполнения не претендую. Даже не уверен, что это точно правильная логика реализации OR в пакетных файлах. Но у меня работает, протестировал с подстановкой других переменных и их значений вручную.
The text was updated successfully, but these errors were encountered: