-2

----- コメントは、この「助けを求める」投稿に対してのみ存在します。この問題についてご検討いただき、ありがとうございます。

----------------- 概要 「検索と置換」の素人で面倒な実装 入力ファイル「2arc!XJ!.txt」に含まれる行が検索されますさまざまな部分文字列の場合、'XSUBSTG' 部分文字列を含む配列要素 !ARY[%%j]! が見つかった場合、'void' のフラグが立てられるため、ファイルが 'Point B' で部分文字列を再構成すると、は省略します。

私の記憶では、これに何週間も苦労してきましたが、「ポイント 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.
4

1 に答える 1

1

ブロック内にラベルを設定しようとしないでください。ラベルは各ループを壊すため、期待どおりに機能しません。

そして、ラベルの後の次の行が で始まる)場合は、構文エラーが発生しています。

あなたの場合、それ:JUMPはエラーの原因となっているラベルです。
しかし、私が言ったように、残りはどちらもうまくいきません。

于 2013-02-12T20:41:33.903 に答える