Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


FreshMen85, у меня есть несколько предположений. И первое из них касается того, что и autorun.exe, и 0_InstallSoft.exe — x86-приложения, а Ваша ОС — x64. Для x86-приложений ОС использует перенаправление некоторых каталогов и разделов реестра, в частности, когда они обращаются к каталогу %SystemRoot%\System32, ОС перенаправляет их запросы в реальный каталог %SystemRoot%\SysWOW64.

Отсюда следует, что, когда Ваше x86-приложение, будь то autorun.exe или 0_InstallSoft.exe, будучи запущенным на x64 ОС, пытается исполнить пакетный файл посредством %comspec% /c или ShellExecute — запускается не x64-версия cmd.exe из каталога %SystemRoot%\System32, а x86-версия cmd.exe из каталога %SystemRoot%\SysWOW64. Затем эта x86-версия cmd.exe из каталога %SystemRoot%\SysWOW64 начинает обрабатывать и исполнять Ваш пакетный файл, доходит до команды «If "%PROCESSOR_ARCHITECTURE%"=="x86" …» и выясняется, что, да — %PROCESSOR_ARCHITECTURE% оказывается таки равно x86 (что вполне логично и правильно в данном контексте), то есть — совсем не то, что Вы ожидали получить.

Кроме того — что команда «start /w pnputil -i -a "%~dp0Driver\x86\ftdibus.inf"», что команда «start /w pnputil -i -a "%~dp0Driver\x64\ftdibus.inf"» пытаются выполнить ShellExecute() с ожиданием для pnputil.cmd/pnputil.bat/pnputil.com/pnputil.exe (потому как Вы не указываете расширение) в текущем каталоге (и не находит их там), затем в PATH (не находит и там — помним, что %SystemRoot%\System32 отображается на %SystemRoot%\SysWOW64, а в нём каких-либо pnputil.cmd/pnputil.bat/pnputil.com/pnputil.exe не наблюдается), затем в реестре в обоих разделах App Paths — и тоже не находит. В результате Вы закономерно получаете тот результат, что видите.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:24, 09-12-2018 | #4