Batch file Inno安装程序:如何以编程方式运行已安装的批处理文件

Batch file Inno安装程序:如何以编程方式运行已安装的批处理文件,batch-file,inno-setup,pascalscript,Batch File,Inno Setup,Pascalscript,如何运行code部分(过程DeinitializeSetup)中的bat文件 正如我试图做的那样: Exec(“”+installationFolder+'\mysql\db\db.cmd“, “+installationFolder+”,“,”,软件显示,EWWaitUnterminated,结果代码); 源和目标参数正在返回到正确的位置。要执行批处理文件,请使用 Exec()的Filename参数中不应有引号 procedure DeinitializeSetup(); 变量 Instal

如何运行
code
部分(过程
DeinitializeSetup
)中的
bat
文件

正如我试图做的那样:

Exec(“”+installationFolder+'\mysql\db\db.cmd“,
“+installationFolder+”,“,”,软件显示,EWWaitUnterminated,结果代码);

源和目标参数正在返回到正确的位置。

要执行批处理文件,请使用

Exec()
Filename
参数中不应有引号

procedure DeinitializeSetup();
变量
InstallationFolder:字符串;
结果代码:整数;
开始
InstallationFolder:=ExpandConstant(“{app}”);
如果Exec(InstallationFolder+'\mysql\db\test.bat',
“+InstallationFolder+”,
'',SW_SHOW,ewwaitunterminated,ResultCode)然后
开始
日志('成功运行批处理文件');
结束
其他的
开始
日志('运行批处理文件失败');
结束;
结束;

如果我安装了带有以下内容的
test.bat

@echo off
echo This is test
echo The provided installation path is %1
echo Without quotes: %~1
echo The current working directory is:
cd
pause
使用:

[Files]
Source: "test.bat"; DestDir: "{app}\mysql\db"
我在安装结束时得到以下信息:


我对命令不太适应,也许你会有更好的运气。否则,请包括更具体的运行要求和/或您所做的尝试?我需要在DeinitializeSetup中运行bat文件,以重新配置并重新安装Tomcat、Red5和mySQL as服务。如果出现错误或用户取消安装,这些bat文件将运行,因此会还原以前的程序。您所说的“源和目标参数”是什么意思?我曾尝试以这种方式运行.bat文件,但它不运行,例如,我如何尝试运行bat文件mySQL安装:Exec('“+installationFolder+”\mysql\db\db.cmd“,“+installationFolder+”,”,SW_SHOW,ewwaitunterminated,ResultCode);如果问题是
installationFolder
,请使用
ExpandConstant(“{app}”)
,查看我的更新答案。如果问题不同,我们需要更多详细信息。”不执行“不是很有描述性。还有引号(
)不应该在那里。引号不能仅在
文件名
参数中,空格在那里处理正确。您不需要任何引号,因为整个字符串都用作路径。当在批处理文件的参数中传递路径时,您显然必须使用引号来分隔“第一个参数”(
%1
)。要删除批处理文件中的引号,请使用
%~1
。例如,请参阅我的更新答案。