Eu quero instalar um programa com um arquivo em lote na pasta Arquivos de Programas . Depois eu quero copiar uma pasta para a mesma pasta. Aqui está um exemplo:
SET SCRIPT_LOCATION=%~dp0
SET INSTALLATION_PATH=%PROGRAMFILES%\example program
"%SCRIPT_LOCATION%\example program\setup.exe"
Agora, os arquivos adicionais devem ser copiados para a pasta do programa:
xcopy "%SCRIPT_LOCATION%\additional_files" "%INSTALLATION_PATH%example program\additional_files" /E
O problema é que o programa suporta apenas 32 bits. Isso significa que o programa será instalado em "C: \ Arquivos de Programas (x86) \ programa de exemplo" em uma máquina de 64 bits.
Mas quando a cópia é executada, os arquivos serão instalados em "C: \ Arquivos de Programas \ exemplo de programa \ arquivos adicionais" . Mas os arquivos adicionais devem ser instalados no mesmo caminho que o programa.
Eu sei que os sistemas operacionais decidem qual caminho deve ser usado quando % PROGRAMFILES% é usado. O SO verifica se o programa suporta maschines de 64 bits ou não.
Acho que uma possível solução seria pedir o tipo de máquina (32/64 bits) e decidir se % PROGRAMFILES% ou % PROGRAMFILES (x86)% devem ser usado com uma cláusula if. Ou existe uma maneira de analisar o caminho da instalação para uma variável e usá-lo posteriormente para a cópia?
Existem outras maneiras legais de incluir variáveis de ambiente para o meu problema?