Batch file to Copy particular lines from one text file to another text file
batch-file, copy, text, windows
Solution
You could use the /g: option to findstr, basically do
findstr /g:pattern.txt %InFile% > %OutFile%
where pattern.txt is (in your example)
I want
Also this
This assumes you can write `findstr` regular expressions for all the lines you want to copy.
If you use findstr with multiple files (wildcard) you will get the file name prepended. To get round this, use ` del out.txt for %F in (*.txt); do findstr /g:pattern.txt %F >> out.txt ` Note that you should put the source files in a different directory to the pattern and output files (or use a different extension) otherwise the `*.txt` wildcard will pick those files up, too.
Problem
I am very new to batch scripting. I don't have much knowledge about Batch Scripting. My doubt is how to copy only some line from text file to other text file. Say my File.txt is ``` This is sample file. I want copy this line. Also this line. But not this line. ``` I want to copy line 2 and 3, but not using their line number, because may change. This muchI have done till now: ``` @ECHO OFF SET InFile=abc.txt SET OutFile=Output.txt IF EXIST "%OutFile%" DEL "%OutFile%" SET TempFile=Temp.txt IF EXIST "%TempFile%" DEL "%TempFile%" IF EXIST "%OutFile%" DEL "%OutFile%" FOR /F "tokens=*" %%A IN ('FINDSTR "I want" "%InFile%"') DO ( ECHO.%%A> "%TempFile%" ECHO.%TempFile%>>"%OutFile%" REM CALL :RemovePrecedingWordA "%%A" ) FOR /F "tokens=*" %%A IN ('FINDSTR " Also this" "%InFile%"') DO ( ECHO.%%A> "%TempFile%" ECHO.%TempFile%>>"%OutFile%" REM CALL :RemovePrecedingWordA "%%A" ) ``` But its not working. Please help.