![环境变量 %PROGRAMFILES% 有 2 次执行](https://linux22.com/image/1416459/%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%20%25PROGRAMFILES%25%20%E6%9C%89%202%20%E6%AC%A1%E6%89%A7%E8%A1%8C.png)
我想用批处理文件安装一个程序到程序文件文件夹。之后我想将一个文件夹复制到同一个文件夹。以下是示例:
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)\示例程序”在 64 位机器上。
但执行复制时,文件将安装在“C:\Program Files\示例程序\附加文件”。但附加文件应安装到与程序相同的路径下。
我知道操作系统决定何时使用哪条路径程序文件使用。操作系统检查该程序是否支持 64 位机器。
我认为一个可能的解决方案是询问机器类型(32/64位)并决定是否 程序文件或者%程序文件 (x86)%应该与 if 子句一起使用。或者有没有办法将安装路径解析为变量并在以后用于复制?
还有其他好方法可以为我的问题包含环境变量吗?