-1

我想使用命令提示符将 .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

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

上面的批处理代码可能是什么错误?

4

1 回答 1

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 :EOF就像exit /B,即退出此批处理文件并继续在父进程中进行命令处理,这意味着如果父进程是cmd.exe调用的命令进程,则退出命令处理器,/K以在完成批处理后保持命令提示符窗口打开。

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

  • call /?... 解释%~1和。%~n1%~dp1
  • echo /?
  • goto /?
  • if /?
  • pause /?
  • rem /?
  • set /?
于 2015-10-25T19:45:58.420 回答