如何创建适用于Program Files和Program Files(x86)的批处理文件?

Sha*_*rad 13 nsis batch-file batch-processing 32bit-64bit

我创建了一个批处理文件,它自动将.sql文件复制到已安装的Jasper服务器的路径(它可以是任何软件安装目录).

这是我的批处理脚本 -

C:\ PROGRA~2\JASPER~1.0\mysql\bin\mysql.exe -u root -proot <create_database.sql

当jasper安装在Program Files(x86)中时工作正常.我如何概括它的程序文件和程序文件(x86).

Ren*_*Pet 25

这是一种方法,我从这个来源复制过:http: //social.msdn.microsoft.com/Forums/zh/winforms/thread/69dc2aac-9956-40a0-9826-da48b9003a8e

SET ProgFiles86Root=%ProgramFiles(x86)%
IF NOT "%ProgFiles86Root%"=="" GOTO win64
SET ProgFiles86Root=%ProgramFiles%
:win64

"%ProgFiles86Root%\name of program" "arguments, etc."
Run Code Online (Sandbox Code Playgroud)


And*_*ahl 18

您想使用环境变量来查找这样的内容.在32位Windows上,%ProgramFiles%是你的朋友.

在64位Windows上,事情有点复杂,因为应用程序可以安装在%ProgramFiles%和中%ProgramFiles(x86)%.

如果你不能通过其他方式查找Jasper的位置(注册表?已安装的程序设置?),最好的办法是查看两个地方,然后选择找到预期目录的地方.

编辑 看到nsis标签 - 你在创建一个安装程序吗?在这种情况下,常量$ ProgramFiles可能很有用.