小编Ned*_*loh的帖子

在NSIS安装程序中执行批处理文件

我有一个批处理文件,我需要在我的NSIS安装程序中运行.它必须在提取完所有文件后运行(我想这很明显,否则批处理文件还不存在).

我尝试将MUI_PAGE_CUSTOMFUNCTION_PRE与完成页面一起使用以运行它,但是当它到达脚本的那一部分时,它似乎跳过它.以下是我如何调用它.

;;Finish Page
!define MUI_PAGE_CUSTOMFUNCTION_PRE Done
!insertmacro MUI_PAGE_FINISH

Function Done
    ExecWait '"$INSTDIR\BatchFile" "$INSTDIR" "$DATA_FOLDER"'
FunctionEnd
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

UPDATE

我现在尝试使用以下内容:

ExpandEnvStrings $0 %COMSPEC% 
ExecWait '"$0" /C "$INSTDIR\batch.bat" "$INSTDIR" "$DATA_FOLDER"'
Run Code Online (Sandbox Code Playgroud)

这不起作用,所以我拿出/ C看看cmd提示符说的是什么(它弹出,但立即关闭),好像它执行了cmd.exe,但就是这样,它没有完成其余的执行.

更新#2

可以在这里找到导致我使用它的核心知识:

Windows批处理文件:.bat vs .cmd?

无论出于何种原因.bat文件都不同意ExecWait.

到底:

ExecWait '"$INSTDIR\BatchFile.cmd" "$INSTDIR" "$DATA_FOLDER"'
Run Code Online (Sandbox Code Playgroud)

工作得很好.

nsis batch-file

15
推荐指数
2
解决办法
2万
查看次数

通过TortoiseSVN在命令行获取当前版本号

我正在尝试编写一个批处理文件,其中我需要我正在处理的项目的HEAD修订版.

是否有命令从命令行获取此命令?

我在Windows XP机器上.

编辑 我最终使用了Shambulator,mizipzor和Stefan的答案之间的混合.我最终得到了这个:

for /f "tokens=5" %%i in ('SubWCRev WorkingCopyPath^|find "Last committed at revision"') do set version=%%i 
echo %version%
Run Code Online (Sandbox Code Playgroud)

谢谢你们的帮助

将此答案添加到下面的列表中.

tortoisesvn batch-file

13
推荐指数
1
解决办法
3万
查看次数

标签 统计

batch-file ×2

nsis ×1

tortoisesvn ×1