Ошибка преобразования битовых файлов в туз
Я хочу преобразовать файл.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 ответ
Я предлагаю использовать для вашего командного файла:
@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
добавлено или нет. И теперь это работает и для имен файлов с 1 или более пробелами или другими символами, перечисленными на последней странице справки, запустив cmd /?
в окне командной строки.
:EOF
предопределенная метка, которая не должна быть явно определена в командном файле. goto :EOF
как exit /B
то есть выйти из этого пакетного файла и продолжить обработку команд в родительском процессе, что означает выход из командного процессора, если родительский процесс является командным процессом cmd.exe
звонил без /K
оставить окно командной строки открытым после завершения пакетной обработки.
Чтобы понять используемые команды и то, как они работают, откройте окно командной строки, выполните там следующие команды и полностью прочитайте все страницы справки, отображаемые для каждой команды.
call /?
... объясняет%~1
,%~n1
а также%~dp1
,echo /?
goto /?
if /?
pause /?
rem /?
set /?