0

我需要遍历文件夹中包含的文件并提取每个文件的第一行。我试图让这个编写两个批处理文件 - 第一个文件过大:

FOR %%a in (D:\TEST_BAT\*.TXT) do (


call Estrai_Header.bat %%a %header%
@echo on
echo %header%


)

第二个(命名Estrai_header.bat)提取文件的第一行(只是将其作为参数传递):

 set header = ""
 SET /A maxlines=1
 SET /A linecount=0

FOR /F %%b IN (%1) DO ( 


    IF !linecount! GEQ %maxlines% GOTO ExitLoop

    set $2 =  %2%%b 
    echo %2%
    SET /A linecount+=1
    echo %linecount%
)

:ExitLoop
exit /b  

Estrai_Header.bat工作正常,每个文件只打印第一行。但我看不到第一批中提取的第一行的值(它打印一个空字符串)。这些批处理文件有什么问题?

提前致谢。

4

1 回答 1

1

尝试这个:

@echo off&setlocal
FOR %%a in (D:\TEST_BAT\*.TXT) do (
set "line="
for /f "usebackqdelims=" %%i in ("%%a") do if not defined line set "line=%%i"
setlocal enabledelayedexpansion
echo(!line!
endlocal
)
于 2013-05-16T09:37:11.993 回答