Batch file 如何在下面的批处理文件中按列获取输出

Batch file 如何在下面的批处理文件中按列获取输出,batch-file,Batch File,如何在下面的批处理文件中按列获取输出 @echo off setlocal enableextensions enabledelayedexpansion set Counter=0 for /f "usebackq tokens=2,5,6 delims= " %%a in (`findstr /c:"Cod " 1231.txt`) do ( set x=%%b set x=!x:~3! set y=%%c if %%c LSS 10 set y=!y:~

如何在下面的批处理文件中按列获取输出

@echo off
setlocal enableextensions enabledelayedexpansion
set Counter=0
for /f "usebackq tokens=2,5,6 delims= " %%a in (`findstr /c:"Cod " 

1231.txt`) do (        
set x=%%b
set x=!x:~3!
set y=%%c        
if %%c LSS 10 set y=!y:~1!
set item!Counter!=%%a-!x!#!y!        
set /a Counter+=1
)
set result=%item0%
for /l %%i in (1,1,!Counter!) do set result=!result!!item%%i!
FOR /F %%A IN ('CHCP') DO SET CHCP=%%A
echo  %result% >>result.txt
endlocal

看起来您正在将这些值连接到
结果
变量中。 而不是:

... do set result=!result!!item%%i!
为什么不直接将值输出到输出文件:

... do echo !item%%i!>>result.txt

杜普?这家伙一次又一次地问同样的问题吗?显然。我还在想他到底想要什么。我是说,这是我写的批处理文件的第三个化身。最后他想要的是一行中的所有结果(或者至少我是这样读的:))谢谢你,我添加了你给我的语法。但结果是第一行跳绳。意味着我需要得到结果660-936330#9 660-936340#10但它不是从第一行给出结果,它只是从第二行给出结果。没关系。上面的行(set result=%item0%)覆盖了第一行。将其更改为:echo%item0%>result.txt或将原始行更改为:for/l%%i in(0,1,!Counter!)do echo!项目%%i!>>result.txt