22 May, 2009
0 Comments
0 categories
When you use NANT to execute a bat file, use the <arg … /> tag to set parameters and use the workingdir to change the current path location, like:
<exec program="CMD.EXE" commandline="/C DatabaseInstallation.cmd" workingdir="${installPath}"> <arg value="${Database_ServerInstanceName}" /> <arg value="${Database_Name}"/> <arg value="${Database_Domain}"/> <arg value="${Database_DtsPackagesFolder}"/> </exec>
If you use it like:
<exec program="CMD.EXE" commandline="/C ${installPath}\DatabaseInstallation.cmd" workingdir="${installPath}"> <arg value="${Database_ServerInstanceName}" /> <arg value="${Database_Name}"/> <arg value="${Database_Domain}"/> <arg value="${Database_DtsPackagesFolder}"/> </exec>
[exec] ‘C:\Program’ is not recognized as an internal or external command,
[exec] operable program or batch file.
BUILD FAILED – 0 non-fatal error(s), 2 warning(s)
This can occur even if you use quotes:
<exec program="CMD.EXE" commandline="/C "${installPath}\DatabaseInstallation.cmd"" workingdir="${installPath}"> <arg value="${Database_ServerInstanceName}" /> <arg value="${Database_Name}"/> <arg value="${Database_Domain}"/> <arg value="${Database_DtsPackagesFolder}"/> </exec>
Tags: NAnt
Thanks, this tip saved my time.