首页 文章

对于批处理脚本中的循环,不处理输入文件中的所有记录

提问于
浏览
0

input.txt文件包含32条记录,但使用此for循环批处理脚本在output.txt文件中只处理了18条记录 . 任何帮助非常感谢!

代码如下(请注意 echo >> %stdout% 有50行:进程语句未复制到此处):

@echo off
set "source=C:\test\test\input.txt"
set "stdout=C:\test\test\output.txt"

for /f "tokens=1,2,3,4 delims='" %%a in (%source%) do ( 
set partner=%%a&set blank=%%b&set comment=%%c&set host=%%d&set
call :process
)
goto :eof

:process
SETLOCAL EnableDelayedExpansion
SET host_final=%host:~1%
echo >> %stdout%  partner=%partner% comment=%comment% host=%host_final%
echo >> %stdout%  XXXXXXXXXXXXXXXXXXXXXX
....
echo >> %stdout%  (line 50 end of %partner%)
ENDLOCAL
goto :eof

1 回答

  • 1

    我不确定你回应的所有那些线是什么,但这是我建议的基本结构:

    @Echo Off
    Set "source=C:\test\test\input.txt"
    Set "stdout=C:\test\test\output.txt"
    For /F "UseBackQ EOL=' Tokens=1,3,4 Delims='" %%A In ("%source%"
    ) Do Call :Process "%%~A" "%%~B" "%%~C"
    GoTo :EOF
    
    :Process
    Set "host=%~3"
    >>"%stdout%" Echo partner=%~1 comment=%~2 host=%host:~1%
    GoTo :EOF
    

    由于我没有看到源文件,我必须假设您提供的令牌和分隔符是正确的 .

相关问题