2013-02-12 22 views
-2

-----評論僅存在於此'請求幫助'張貼。 感謝您考慮這個問題並提供幫助!「)此時出乎意料。」搜索後

-----------------概述 的「查找和替換」 業餘&繁瑣的實行包含在輸入文件,「2arc內線(S)!XJ '.txt'是 搜索各種子字符串,'XSUBSTG'當發現數組 元素,!ARY [%% j]!,包含子字符串被標記爲'void' 所以當文件是在'B點'改寫後,子字符串被省略。

這是我的回憶,一直在掙扎着這個好幾個星期, 在包含代碼塊之前,'C點'現有代碼的所有 都是功能性和無錯誤的。當'C點'處的代碼塊 被添加時,''此時是意外的。' 發生錯誤。

上述標籤的唯一代碼「:TWO」是幾組語句 初始化變量(多個),FOR/F迴路與它的匹配 括號和塊代碼等同於「TWO」塊,它 只是搜索不同的子字符串。

目前,此片段的功能最多可在'A點' 處刪除,此時','是意外的。錯誤發生,並且執行停止。

我希望能找到解決方案。其次,如果 這個論壇的讀者都如此感動,就如何改進 這個代碼,以及我的整體編碼能力,知識,讓我感謝 大家提前。你的幫助&建議非常受歡迎。

請隨附任何說明,改進與簡單, 詳細解釋(S)作爲知識和理解是嚴重缺乏 。

再次感謝您的幫助!

: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. 
+2

我最好的建議 - 把它分解成(很多)較小的部分並調試它們 - 例如,如你所說,直到代碼'C'被添加後,它的工作 - 回去那麼遠,看看 – KevinDTimm 2013-02-12 20:31:56

回答

1

不要試圖在塊內部設置標籤,它們不像預期的那樣工作,因爲它們會破壞每個循環。

如果標籤後面的下一行以)開頭,則表示語法錯誤。

你的情況是標籤:JUMP導致錯誤。
但就像我說的,其餘的都不行。

+0

jeb,謝謝你非常多,你的建議是現貨! – user1995371 2013-02-14 16:21:08