-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 に答える