为 iexpress 创建批处理文件

San*_*ile 5 c# installation exe silent iexpress

我正在尝试iexpress运行我的批处理文件,它将为我执行 2 个 exe 和 1 个 msi 文件。当我尝试手动完成时,它起作用了。

以下是我的批处理文件中的代码。

Start /wait %CD%\1.exe /q
Start /wait %CD%\2.exe /q
msiexec.exe /i "%CD%\3.msi" 
Run Code Online (Sandbox Code Playgroud)

但是当我从 iexpress 创建一个 exe 文件时,这似乎不起作用。 在此处输入图片说明

参考

上面提到的文章有一些代码(将文件复制到临时文件夹)&但我无法理解语法。

MKDIR %Tmp%\<UNIQUE PRODUCT NAME>
XCOPY . %Tmp%\<UNIQUE PRODUCT NAME> /S /E /Y
%Tmp%\<UNIQUE PRODUCT NAME>\setup.exe
Run Code Online (Sandbox Code Playgroud)

fis*_*ion 3

问题是,正如您从屏幕截图中看到的,批处理文件是由 执行的command.com,而不是cmd.exe. (如果您不指定解释器,IExpress 使用command.com。哎呀。)因此不存在像%cd%或 之类的变量%~dp0。

无论如何你可能都不需要它们。但您确实需要在 IExpress 中显式执行批处理文件,例如:

cmd.exe /c file.bat
Run Code Online (Sandbox Code Playgroud)

以便它使用现代命令解释器。

您问题中的第二段代码通过将文件xcopy保存到不同的目录来使文件持久化(即,在 IExpress 存档终止后它们不会被删除)。