将位文件转换为ace文件时出错

时间:2015-10-25 18:05:19

标签: batch-file xilinx xilinx-ise xilinx-edk

我想使用命令提示符将.bit文件转换为.ace文件。我尝试创建.bat文件来做到这一点。但是当我执行命令时,没有文件被添加到指定的目录。

批处理文件名为makeace,代码如下:

@echo off
if "%1" == "" goto error
xmd -tcl ./genace.tcl -jprog -hw %1.bit -board ml505 -ace my_%1.ace
goto end
:error
echo Makeace - by FPGA Developer http://www.fpgadeveloper.com
echo.
echo Usage:   makeace bitfile (without .bit extension)
echo Example: makeace project
:end
echo.

我测试中的.bit文件名为comp.bit

用于测试的命令是:

makeace comp

它运行没有错误,但没有添加新文件。

上面的批处理代码中可能出现什么错误?

1 个答案:

答案 0 :(得分:0)

我建议您使用批处理文件:

@echo off
if "%~1" == "" goto ShowHelp
if "%~1" == "/?" goto ShowHelp

rem Get just file name without file extension and path.
set "BitFileName=%~n1"
rem Get drive and path of file ending with a backslash.
set "BitFilePath=%~dp1"

xmd.exe -tcl ./genace.tcl -jprog -hw "%BitFilePath%%BitFileName%.bit" -board ml505 -ace "%BitFilePath%my_%BitFileName%.ace"

set "BitFileName="
set "BitFilePath="
echo.
goto :EOF

:ShowHelp
echo Makeace - by FPGA Developer http://www.fpgadeveloper.com
echo.
echo Usage:   makeace bitfile
echo.
echo Example: makeace project
echo.
pause

现在,如果使用附加了.bit的文件名调用批处理文件并不重要。现在,它也适用于在命令提示符窗口中运行cmd /?,在上一个帮助页面输出中列出的包含1个或多个空格或其他字符的文件名。

:EOF是预定义标签,不得在批处理文件中明确定义。 goto :EOFexit /B类似,即退出此批处理文件并继续父进程中的命令处理,这意味着如果父进程是没有{{1}的命令进程cmd.exe,则退出命令处理器完成批处理后保持命令提示符窗口打开。

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • /K ...解释call /?%~1%~n1
  • %~dp1
  • echo /?
  • goto /?
  • if /?
  • pause /?
  • rem /?