2013-05-16 16 views
0

我需要遍歷文件夾中包含的文件並提取每個文件的第一行。我一直試圖讓這個寫兩個批處理文件 - 第一個overate過文件:批處理腳本循環遍歷文件夾中的文件,併爲每一個文件夾提取第一行

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正常工作,並打印每個文件只是第一行。但是我看不到第一批提取的第一行的值(它打印出一個無效的字符串)。這些批處理文件有什麼問題?

在此先感謝。

回答

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 
) 
+0

感謝Endoro。 它的工作原理也很簡單! :) –

相關問題