“)此时出人意料。”经过搜索

时间:2013-02-12 20:26:00

标签: arrays batch-file dos

-----仅对此“请求帮助”发布的评论存在。   感谢您考虑此问题并提供帮助!

-----------------概述   一个业余& “搜索和替换”的繁琐实施 输入文件'2arc!XJ!.txt'中包含的行是 搜索各种子串,'XSUBSTG'找到数组时 element(s),!ARY [%% j] !,包含子字符串被标记为'void' 所以当文件重组时,'B点'省略子串。

这是我的回忆,已经挣扎了好几个星期, 在包含代码块之前,'Point C'全部 现有代码的功能和无错误。当阻止 代码为,'Point C'被添加,')此时出乎意料。 发生了错误。

标签':TWO'上面的唯一代码是一些set语句 初始化变量,一个FOR / F循环与它的匹配 括号,以及与'TWO'块相同的块代码 只搜索不同的子字符串。

目前,此代码段的功能在“A点”删除 那时,')出乎意料的是。'发生错误和 执行停止。

我希望能够找到解决方案。其次,如果 这个论坛的读者非常感动,建议我如何改进 这段代码,以及我的整体编码能力,知识,让我感谢 大家,提前。你的帮助&建议非常欢迎。

请简单地附上任何指示,改进, 作为知识和理解的详细解释是非常严重的 缺乏。

再次感谢你们所有人的帮助!

 :TWO
            echo :  ------------------ Search: Two
            set XS2=1
            set XSTG=
 :TEST2
            If !XS2! GTR !XMAX! Goto LOOP
               FOR /L %%j in (%XS2%,1,%XMAX%) do (
                  set XSTG=!ARY[%%j]!
                  set XSUBSTG=!XSTG:~22,%X10%!
                  echo : --------- 10 Begin
                  echo :     XS2=  "!XS2!"
                  echo :     XSTG= "!XSTG!"
                  echo :     XSUBSTG= "!XSUBSTG!"
               call d:\bat\sleep 1
                  If [!XSUBSTG!]==[EOF--Disk:] Goto SKIP2
                     echo : 10 Included - B
                     echo :       ary= "!XSTG!"
                     Goto END
 :SKIP2
                     echo : 10 Skipped - B
                     set ARY[!XS2!]=void
                     set XSTG=!ARY[%XS2%]!
                     echo :     ary= "!XSTG!"
 :END
                     set /a XS2+=1
               )
               echo : --- End For10 -j
               Goto TEST2

 :LOOP
 :: -----  Point 'A'
         If EXIST !XDRV!!XPTHt!2arc!XJ!.txt del !XDRV!!XPTHt!2arc!XJ!.txt> NUL
 :: -----  Point 'B'
         FOR /L %%k in (1,1,%XMAX%) do (
             if !ARY[%%k]!==[void] Goto JUMP
                echo !ARY[%%k]!>> "!XDRV!!XPTHt!2arc!XJ!.txt"
 :JUMP
         )
         set ARY
         pause


 :: -----  Point 'C' - Start of Block
         cls
         echo :
         echo :      Compostion of 2arc!XJ!.txt
         echo :
         FOR /L %%m in (1,1,%XMAX%) do (
             set ARY[%%m]=
         )
         cls
         echo :
         echo :      Array after Flush / Reset
         echo :
         set ARY
         pause
 ::  -----  End of Block

         set /A XJ+=1
         Goto FILTER

无法弄清楚如何附加文件以便调试输出 “)此时出人意料。”这里插入了错误。

 :  ------------------ Two
 : --------- 10 Begin
 :     XS2=  "1"
 :     XSTG= "void"
 :     XSUBSTG= ""
 : 10 Included - B
 :       ary= "void"
 : --- End For10 -j
 : --------- 10 Begin
 :     XS2=  "2"
 :     XSTG= "    Atlanta 2960.txt                                                 2"
 :     XSUBSTG= "          "
 : 10 Included - B
 :       ary= "    Atlanta 2960.txt                                                 2"
 : --- End For10 -j
 : --------- 10 Begin
 :     XS2=  "3"
 :     XSTG= "    Boston 2961.txt                                                  2"
 :     XSUBSTG= "          "
 : 10 Included - B
 :       ary= "    Boston 2961.txt                                                  2"
 : --- End For10 -j
 : --------- 10 Begin
 :     XS2=  "4"
 :     XSTG= "    Cancun 29 62.txt                                                 2"
 :     XSUBSTG= "          "
 : 10 Included - B
 :       ary= "    Cancun 29 62.txt                                                 2"
 : --- End For10 -j
 : --------- 10 Begin
 :     XS2=  "5"
 :     XSTG= "    Denver 2963.txt                                                  2"
 :     XSUBSTG= "          "
 : 10 Included - B
 :       ary= "    Denver 2963.txt                                                  2"
 : --- End For10 -j
 : --------- 10 Begin
 :     XS2=  "6"
 :     XSTG= "    Eaton 265.txt                                                    2"
 :     XSUBSTG= "          "
 : 10 Included - B
 :       ary= "    Eaton 265.txt                                                    2"
 : --- End For10 -j
 : --------- 10 Begin
 :     XS2=  "7"
 :     XSTG= "    Glasgow 2 9 6 7.txt                                              2"
 :     XSUBSTG= "t         "
 : 10 Included - B
 :       ary= "    Glasgow 2 9 6 7.txt                                              2"
 : --- End For10 -j
 : --------- 10 Begin
 :     XS2=  "8"
 :     XSTG= "    Hartford 269.txt                                                 2"
 :     XSUBSTG= "          "
 : 10 Included - B
 :       ary= "    Hartford 269.txt                                                 2"
 : --- End For10 -j
 : --------- 10 Begin
 :     XS2=  "9"
 :     XSTG= "                      EOF--Disk:2  Sun 02/10/2013  ---               2"
 :     XSUBSTG= "EOF--Disk:"
 : 10 Skipped - B
 :     ary= "void"
 : --- End For10 -j
 ) was unexpected at this time.

1 个答案:

答案 0 :(得分:1)

不要尝试在块内设置标签,它们不能按预期工作,因为它们会破坏每个循环。

如果标签后面的下一行以)开头,则会出现语法错误。

在您的情况下,标签:JUMP会导致错误 但就像我说的那样,其余的都不会起作用。