Syntax des Befehls ist falsch, in batch?

Den cmd.exe hält er mir Die syntax des Befehls ist fehlerhaft-Fehler beim ausführen des folgenden codes. Was ist Los mit ihm?

code:

 @echo off
 setlocal enabledelayedexpansion
 CALL ant clean build compile 

REM loop thru/Run ALL .properties file names from "ExecutionSDKTest_10.2.2" folder
:labelNextTest
FOR %%G in (C:\ExecutionSDKTest_10.2.2\*.properties) DO (
    pause
    Set fileName=%%~nxG
    rem fileName==ENG-822.properties       
    set testName=!fileName:~0,7!
    rem testName==ENG-822
   set testNum=!fileName:~4,3!
     REM testNum==822
    ECHO Please Create: !testName!_Ref.properties.txt in C:\ExecutionSDKTest_10.2.2\Logs
   echo Running:!fileName!
   java -jar Test.jar !fileName! > Logs\!fileName!.log

   set logPath="C:/ExecutionSDKTest_10.2.2/Logs/!fileName!.log"
   set refLogPath="C:/ExecutionSDKTest_10.2.2/Logs/!testName!_Ref.properties.txt"
   REM if Ref exists check Line by line
   if EXIST !refLogPath!( 
        Call Perl TestProp1RefcheckLines.pl !fileName! !testName!
  ) else (
   rem if ref does NOT exist check one important line 
   rem returns case number to check for  
   perl.exe c:\ExecutionSDKTest_10.2.2\TestProp1noRefCases.pl !testNum!
   set lineCase=!ERRORLEVEL!
   echo linecase is !lineCase! 

   rem set LineCase to  one, two, three or four, depending on case number
   FOR /F "tokens=*" %%B in (!logPath!) Do (
    set logLine=%%B
rem check line >> : "...job status:..."
if /i "!logLine:~11,33!"=="... STATUS REPORT: ...Job status:"( 
    if "!lineCase!" =="1"( 
            if /i "!logline:~32!" == "job status: job finished_error" goto labelPass
           )
    if "!lineCase!"=="2" ( 
    if /i "!logLine:~32!" == "Job status: job QUEUED" goto labelPass
           )
    if "!lineCase!"=="4"( 
    if /i "!logLine:~32!" == "job Execution Finished Successfully" goto labelPass
   )
) else (   
       if /i "!logLine:~11,33!"=="Error initializing the connection" goto labelPass 
   if /i "!logLine!" == "Exception in thread ""main"" java.lang.IllegalArgumentException: timeout value is negative" goto labelPass
 )
 )
  goto labelFail
   )
   )
 pause

 REM Test Passed or Failed
:labelFail
echo !TestName! FAILED due to the above incorrect line
 goto labelNextTest

:labelPass
 Echo !TestName! PASSED
goto labelNextTest
  • Das grundlegende problem ist, dass du bist besser dran, wenn man etwas diesem Komplex in einem Perl-Skript. Oder ein Powershell-script, oder ein VBScript. Oder sogar eine Ant-task. Alles aber eine .bat-Datei. IMHO... PS: Sie haben keine Ahnung, welche Linie es ist barfing auf?
  • willkommen in der wunderbaren Welt der BAT-Programmierung und debugging. Sehen dies SO Frage stackoverflow.com/questions/8987208/...
InformationsquelleAutor jerryh91 | 2012-07-06
Schreibe einen Kommentar