-----仅对此“请求帮助”发布的评论存在。 感谢您考虑此问题并提供帮助!
-----------------概述 一个业余& “搜索和替换”的繁琐实施 输入文件'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.
答案 0 :(得分:1)
不要尝试在块内设置标签,它们不能按预期工作,因为它们会破坏每个循环。
如果标签后面的下一行以)
开头,则会出现语法错误。
在您的情况下,标签:JUMP
会导致错误
但就像我说的那样,其余的都不会起作用。