input.txt文件包含32条记录,但使用此for循环批处理脚本在output.txt文件中只处理了18条记录。任何帮助非常感谢!
代码如下(请注意 echo>>%stdout%有50行:process语句未在此处复制):
@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
答案 0 :(得分: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
由于我还没有看到源文件,我必须假设您提供的令牌和分隔符是正确的。