Ошибка преобразования битовых файлов в туз

Я хочу преобразовать файл.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 /?
Другие вопросы по тегам