Я хочу установить программу с командным файлом в папку Program Files . После этого я хочу скопировать папку в ту же папку. Вот пример:

SET SCRIPT_LOCATION=%~dp0
SET INSTALLATION_PATH=%PROGRAMFILES%\example program

"%SCRIPT_LOCATION%\example program\setup.exe"

Теперь дополнительные файлы должны быть скопированы в папку программы:

xcopy "%SCRIPT_LOCATION%\additional_files" "%INSTALLATION_PATH%example program\additional_files" /E

Проблема в том, что программа поддерживает только 32 бита. Это означает, что программа будет установлена в «C:\Program Files (x86)\example program» на 64-битной машине.

Но когда копия будет выполнена, файлы будут установлены в «C:\Program Files\ пример программы \ дополнительные файлы». Но дополнительные файлы должны быть установлены по тому же пути, что и программа.

Я знаю, что операционные системы решают, какой путь следует использовать при использовании % PROGRAMFILES% . ОС проверяет, поддерживает ли программа 64-битные машины или нет.

Я думаю, что возможным решением было бы запросить тип машины (32/64-бит) и решить, следует ли использовать % PROGRAMFILES% или % PROGRAMFILES (x86)% с предложением if. Или есть способ проанализировать путь от установки до переменной и использовать его позже для копирования?

Есть ли другие хорошие способы включить переменные среды для моей проблемы?

0