----- 评论仅针对此“请求帮助”发布。感谢您对这个问题的考虑和帮助!
----------------- 概述 “搜索和替换”的业余且繁琐的实现 搜索输入文件“2arc!XJ!.txt”中包含的行对于各种子字符串,'XSUBSTG' 当找到包含子字符串的数组元素 !ARY[%%j]! 时,将被标记为 'void',因此当文件在 'Point B' 处重组时,子字符串被省略。
这是我的回忆,已经为此苦苦挣扎了好几个星期,在将代码块包含在“C点”之前,所有现有代码都可以正常工作且没有错误。当添加“点 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.