0

作成しました。次のようにモデルを実行するバッチ。コマンド プロンプト (DOS) でこれを行います: C:\Program Files\Portico\portico-1.0.2\exec> executePortico.bat name_model

例: executePortico.bat ExampleCPPFederate

しかし、このエラー:

'C:\Documents' は、内部コマンドまたは外部の操作可能なプログラムまたはバッチ ファイルとして認識されません。"C:\Program Files\Portico\portico-1.0.2\examples\cpp\cpp13\" ExampleCPPFe derate.cpp 続行するには何かキーを押してください。. . '"C:\Program Files\Portico\portico-1.0.2\examples\cpp\cpp13\" ExampleCPPF ederate2 'は、内部コマンドまたは外部の操作可能なプログラムまたはバッチ ファイルとして認識されません。終了 - 通常

私のコードを見てください:

@echo off

rem ###########################
rem # implementation/version  #
rem ###########################


rem ################################
rem # check command line arguments #
rem ################################
:checkargs
if "%0" == "" goto usage
if "%1" == "" goto usage


rem #######################
rem # test for JAVA_HOME  #
rem #######################
if "%JAVA_HOME%" == "" goto nojava
goto rtihometest

:nojava
echo ERROR Your JAVA_HOME environment variable is not set!
goto usage

rem #######################
rem # test for RTI_HOME   #
rem #######################
:rtihometest
call C:\Arquivos de programas\Portico\portico-1.0.2\etc\confvarsC.bat
if not "%RTI_HOME%" == "" goto execute


############################################
### (target) execute #######################
############################################
:execute
SHIFT
set PATH=%JAVA_HOME%\jre\bin\client;%RTI_HOME%\bin;%PATH%
set RTI_FEDDIR="C:\Arquivos de programas\Portico\portico-1.0.2\examples\cpp\cpp13\"
set EXEC="C:\Arquivos de programas\Portico\portico-1.0.2\examples\cpp\cpp13\"


if "%0" == "m" goto exec1

:exec1
echo %EXEC%%1%.cpp
pause
%EXEC%%1%.cpp %2
goto finish


:usage
echo usage: executePortico.bat [model] [nome modelo]
goto err

:err
echo Terminated - Error
goto end

:finish
echo Terminated - Normal

:end

次のことを行う必要があります。このソフトウェアでサンプルを実行して、ファイルを作成する必要があります。コマンドプロンプトで次のように実行するバット: executaPortic.bat name_model 私はこれを行いました:

@echo off

rem ###########################
rem # implementation/version  #
rem ###########################


rem ################################
rem # check command line arguments #
rem ################################
:checkargs


if "%0"=="" goto usage
if "%1"=="" goto usage



rem #######################
rem # test for JAVA_HOME  #
rem #######################
if "%JAVA_HOME%"=="" goto nojava
goto rtihometest

:nojava
echo ERROR Your JAVA_HOME environment variable is not set!
goto usage

rem #######################
rem # test for RTI_HOME   #
rem #######################
:rtihometest
call C:\Portico\portico-1.0.2\etc\confvarsC.bat
if not "%RTI_HOME%"=="" goto execute


############################################
### (target) execute #######################
############################################
:execute
SHIFT
set PATH=%JAVA_HOME%\jre\bin\client;%RTI_HOME%\bin;%PATH%
set RTI_FEDDIR=C:\Portico\portico-1.0.2\examples\cpp\cpp13\
set EXEC=C:\Portico\portico-1.0.2\examples\cpp\cpp13\

rem ###########################
rem # if "%0"=="m" goto exec1
rem ###########################

goto exec1

:exec1
echo %EXEC%%1.exe
pause
"%EXEC%%1.exe" %2
goto finish


:usage
echo usage: executePortico.bat [model] [nome modelo]
goto err

:err
echo Terminated - Error
goto end

:finish
echo Terminated - Normal

:end

しかし今、このエラー: C:\Portico\portico-1.0.2\exec>executePortic.bat main 入力行が長すぎます。

4

1 に答える 1

0

行の置換や引用符の追加など、その他のマイナーな構文エラーをいくつか修正しまし%1%た。スクリプトが引数として何を期待しているのかを知らないか、使用例を確認しないと修正できない潜在的な問題が他にもいくつかあります。それらにコメントを付けました。%1call blah\blah\confvarsC.bat!!!!!!

@echo off

rem ###########################
rem # implementation/version  #
rem ###########################


rem ################################
rem # check command line arguments #
rem ################################
:checkargs
if #%1==# goto usage
if #%2==# goto usage


rem #######################
rem # test for JAVA_HOME  #
rem #######################
if "%JAVA_HOME%"=="" goto nojava
goto rtihometest

:nojava
echo ERROR Your JAVA_HOME environment variable is not set!
goto usage

rem #######################
rem # test for RTI_HOME   #
rem #######################
:rtihometest
call "C:\Arquivos de programas\Portico\portico-1.0.2\etc\confvarsC.bat"
if not "%RTI_HOME%"=="" goto execute


rem ############################################
rem ### (target) execute #######################
rem ############################################
:execute

rem !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
rem !!!!  SHIFT is useful if you have more than   !!!!
rem !!!!  9 arguments.  Otherwise, there's no     !!!!
rem !!!!  reason to use it.  After this, I can't  !!!!
rem !!!!  tell whether you expect %2 to be the    !!!!
rem !!!!  second script argument or the third.    !!!!
rem !!!!  -- rojo                                 !!!!
rem !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SHIFT
set PATH=%JAVA_HOME%\jre\bin\client;%RTI_HOME%\bin;%PATH%
set RTI_FEDDIR=C:\Arquivos de programas\Portico\portico-1.0.2\examples\cpp\cpp13\
set EXEC=C:\Arquivos de programas\Portico\portico-1.0.2\examples\cpp\cpp13\


if "%0"=="m" goto exec1

rem !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
rem !!!!  Shouldn't there be some sort of    !!!!!
rem !!!!  "else goto" statement here?  As    !!!!!
rem !!!!  the script runs now, it will goto  !!!!!
rem !!!!  exec1 regardless of whether        !!!!!
rem !!!!  "%0"=="m"  -- rojo                 !!!!!
rem !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


:exec1
echo %EXEC%%1.cpp
pause
"%EXEC%%1.cpp" %2
goto finish


:usage
echo usage: executePortico.bat [model] [nome modelo]
goto err

:err
echo Terminated - Error
goto end

:finish
echo Terminated - Normal

:end
于 2013-02-15T13:49:15.127 に答える