这段批处理运行后会自动关闭,怎么修改才能继续goto下段的批处理?

2024-11-14 10:55:11
推荐回答(4个)
回答1:

goto :eof 一般用于含有多个批处理“段”的批处理,例如有函数的批处理。这个批处理只有一段,所以这个 goto :eof 的功能就等同于 exit 了。

如果想继续执行后面的命令,应该修改一下:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2" %%i in (2.txt) do set #%%i=%%j
set /p s=<1.txt
(for /l %%i in (0,1,999) do (
call set x=!s:~%%i,1!
if "!x!"=="" echo !z!&goto AAA
call set z=!z!%%#!x!%%
))>3.txt

:AAA
::::::下面的代码:::::::::

回答2:

1.
goto用法是:
goto a
``````
:a
`````
你的goto :eof 可以改成a,不要冒号

2.
for /f "tokens=1,2" %%i in (2.txt) do set #%%i=%%j
这句话是吧%%j的内容放到变量“#%%i”中,你的%%i是什么?2.txt内容是什么?说一下好不?
我推测变量“#%%i”中,%%i应该是数字12345··你都没有说2.txt的内容是什么。是不是建立了变量#1,#2,#3,#4```要和后面的z和在一起,赋值给z?

3.
set /p s=<1.txt
这句话,是把1.txt的首行,复制给变量s,是不是你想要的效果?从哪里冒出个1.txt

4.
call set z=!z!%%#!x!%%

你是想把变量z,加上%,加上# , 加上变量!x!,加上 %%,然后赋值给z吗?

如果z原来是qq,!x!是1,执行之后z的值就是:qq%#1%,是不?

回答3:

for /l %%i in (0,1,999) do (
call set x=!s:~%%i,1!
if "!x!"=="" echo !z!&goto :eof

这一段意思是如果X为空goto eof就关闭了.当%%i从0开始循环时,前面的set X=!s:~%%i,1!设置跳过1个数字此时x为空了,也就是说你的for没循环起来.

回答4:

最后一行加pause