我想使用命令提示符将.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
它运行没有错误,但没有添加新文件。
上面的批处理代码中可能出现什么错误?
答案 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 :EOF
与exit /B
类似,即退出此批处理文件并继续父进程中的命令处理,这意味着如果父进程是没有{{1}的命令进程cmd.exe
,则退出命令处理器完成批处理后保持命令提示符窗口打开。
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
/K
...解释call /?
,%~1
和%~n1
。%~dp1
echo /?
goto /?
if /?
pause /?
rem /?