2012-06-15 81 views
1

我嘗試了十幾種不同的方法,但無法正確使用它。使用批處理文件將前6行復制到新的txt文件中

我有很多文本文件在不同的文件夾,所以我想引用輸入文件作爲變量,例如:* .txt(只要使用任何txt文件與bat文件在同一文件夾中)。

我需要複製前6行並將其粘貼到新的txt文件中。
我想將它命名(但不是必要的)SAMPLE_original_txt_file_name

EG:

Input = text01.txt 
Output = SAMPLE_text01.txt (this would contain the first 6 complete lines from text01.txt) 

我希望得到任何幫助,我的頭現在從撞太多靠牆需要拆線......

+1

您是否安裝了cygwin?一個簡單的'for'循環和'head -6'會使這個非常微不足道。 –

回答

0
@echo off 
set count=0 
for /f "tokens=*" %%i in (text01.txt) do (
call :counter %%i 
) 
goto :eof 
:counter 
rem echo count is %count% 
set /a count+=1 
if %count% lss 7 echo %* >> SAMPLE_text01.txt 
GOTO :eof 
2

以下爲我工作:

@ECHO OFF 
IF "%~1" == "" (ECHO Usage: %~nx0 filemask& GOTO :EOF) 
FOR /F "delims=" %%I IN ('DIR /B %1') DO (
    <"%%I" (
    FOR /L %%I IN (1,1,6) DO (
     SET line= 
     SET /P line= 
     SETLOCAL EnableDelayedExpansion 
     ECHO(!line! 
     ENDLOCAL 
    ) 
) >"%%~dpISAMPLE_%%~nxI" 
) 

上面的腳本需要一個參數,它是一個文件掩碼,如*.txt。它還支持使用(現有)路徑完成的蒙版。無論路徑是否指定,輸出樣本文件都將創建在與原始文件相同的目錄中。

相關問題