Я хочу установить программу с командным файлом в папку 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. Или есть способ проанализировать путь от установки до переменной и использовать его позже для копирования?
Есть ли другие хорошие способы включить переменные среды для моей проблемы?