我想从部分启动批处理文件[Files]。它适用于绝对路径,例如
[Files]
#expr Exec("C:\batch.bat");
Run Code Online (Sandbox Code Playgroud)
但我怎样才能用相对路径启动它呢?我的批处理文件与 .iss 文件位于同一目录中。
我已经尝试过
#expr Exec("\Batch.bat");
Run Code Online (Sandbox Code Playgroud)
或者类似的东西
#expr Exec("{#SourceDataPath}\Batch.bat");
Run Code Online (Sandbox Code Playgroud)
与
#expr Exec(ExpandConstant("{#SourceDataPath}\Batch.bat"));
Run Code Online (Sandbox Code Playgroud)
但它只是说“未声明的标识符:ExpandConstant”。
但我尝试过的一切都不起作用。
#expr Exec(SourcePath + "\Batch.bat");
Run Code Online (Sandbox Code Playgroud)
请注意,说您从该[Files]部分执行批处理文件并不正确。这样想可能会让你感到困惑。您正在预处理阶段执行批处理文件。除非您在进一步的预处理器指令中使用批处理文件的结果(我相信您不会),否则您实际上可以将调用放置Exec在脚本文件中的任何位置。因为我相信您的批处理文件仅生成文件,这些文件仅在预处理完整脚本后才发生的编译阶段使用。尽管在你放置的地方拨打电话是完全可以的。这只是为了让您了解幕后发生的事情。
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |