【问题标题】:Batch files - is not recognized as an internal command批处理文件 - 不被识别为内部命令
【发布时间】:2013-02-14 15:59:34
【问题描述】:

我创建了一个。将运行模型的批处理如下。在命令提示符(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\" ExampleCPPPe 降额.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 输入行太长。

【问题讨论】:

  • if 语句中将== 周围的空格去掉。此外,删除 set RTI_FEDDIR=set EXEC= 值中的引号并将 %EXEC%%1%.cpp %2 更改为 "%EXEC%%1%.cpp" %2
  • 之前把安装位置改成C:\Portico\portico-1.0.2 我按你说的做了,请看部分代码::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\ 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
  • 但是出现这个错误:C:\Portico\portico-1.0.2\exec>executePortico.bat main C:\Portico\portico-1.0.2\examples\cpp\cpp13\.exe 按任何键继续。 . . '"C:\Portico\portico-1.0.2\examples\cpp\cpp13\2' 未被识别为内部命令或外部可运行程序或批处理文件。终止 - 正常

标签: batch-file


【解决方案1】:

我修复了其他几个小的语法错误,例如将 %1% 替换为 %1 并在您的 call blah\blah\confvarsC.bat 行中添加引号。如果不知道脚本期望什么作为参数或查看示例用法,我无法解决其他一些潜在问题。我用!!!!!! cmets 标记了那些。

@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

【讨论】:

  • 看看我做了什么: 1 - 在命令提示符下:C:\Portico\portico-1.0.2\exec>executePortico.bat main C:\Portico\portico-1.0.2\examples\ cpp\cpp13\main.exe 按任意键继续。 . .错误 [main] portico.lrc:Fed 文件不存在:file=file:/C:/Portico/portico-1.0.2/exec/testfom.fed org.portico.lrc.compat.JCouldNotOpenFED:Fed 文件不存在t存在:file=file:/C:/Portico/portico-1.0.2/exec/testfom.fed 如果我把文件executePortico.bat放在C:\Portico\portico-1.0.2\examples\cpp\cpp13 ,所以这种方式行得通。
猜你喜欢
  • 2014-10-19
  • 1970-01-01
  • 2018-01-02
  • 2015-04-28
  • 2016-06-19
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多