首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个同时适用于程序文件和程序文件(X86)的批处理文件?

如何创建一个同时适用于程序文件和程序文件(X86)的批处理文件?
EN

Stack Overflow用户
提问于 2012-04-09 17:27:12
回答 6查看 58.4K关注 0票数 13

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

这是我的批处理脚本

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

这是工作时,贾斯珀安装在程序文件(X86)。如何将其推广到程序文件和程序文件(X86)。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-04-09 17:36:25

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

在64位的视窗系统中,事情要复杂一些,因为应用程序可以在%ProgramFiles%%ProgramFiles(x86)%中安装。

如果您不能通过其他方式查找Jasper的位置(注册表?安装程序设置?),最好的方法是在这两个位置都进行查找,然后选择您希望找到的那个目录。

编辑看到了nsis您正在创建安装程序吗?在这种情况下,常量$ProgramFiles可能会很有用。

票数 18
EN

Stack Overflow用户

发布于 2013-02-25 12:57:36

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

代码语言:javascript
复制
SET ProgFiles86Root=%ProgramFiles(x86)%
IF NOT "%ProgFiles86Root%"=="" GOTO win64
SET ProgFiles86Root=%ProgramFiles%
:win64

"%ProgFiles86Root%\name of program" "arguments, etc."
票数 25
EN

Stack Overflow用户

发布于 2012-04-09 17:57:51

在NSIS中,您通常可以假装x64不存在,只使用$programfiles

在批处理文件中;如果定义了%ProgramFiles(x86)%,则可以假定您在64位系统上,%ProgramFiles(x86)%是32位文件夹,%ProgramFiles%是64位文件夹。您还可以检查PROCESSOR_*:PROCESSOR_ARCHITEW6432是为在64位系统上运行的32位批处理文件定义的。对于x86-64/AMD64位批处理文件,PROCESSOR_ARCHITECTURE是AMD64 (请记住,PROCESSOR_ARCHITECTURE不仅仅是x86或AMD64,还有IA64和NT4的更多值)

您还应该记住,这些变量可以由用户更改,或者可能根本不存在,因此,如果您正在使用NSIS生成批处理,最好使用NSIS提供的完整路径...

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10071300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档