Parece uma dor para trabalhar. Você pode usar o meu script jgrep.bat para isso.
@set @junk=1 /*
@echo off
cscript //nologo //E:jscript %0 %*
goto :eof
*/
args = WScript.Arguments
match = args(0);
if(match=="-t") match=args(1).replace("'", "\"");
var stdin = WScript.StdIn;
var stdout = WScript.StdOut;
// stdout.WriteLine("Arguments: "+match);
var regex = new RegExp(match);
while(!stdin.AtEndOfStream) {
var sLine = stdin.ReadLine();
if(regex.test(sLine)) stdout.WriteLine(sLine);
}
Eu consideraria isso (principalmente) auto documentando, mas se você tiver uma pergunta específica sobre isso, pergunte. Basta colocar esse arquivo em algum lugar do caminho e executá-lo assim:
cat input.csv|jgrep.bat "(AD Service|GXNM)"
Isso usa apenas uma expressão regular para corresponder às suas linhas. A expressão significa:
cat input.csv|jgrep.bat - Send the contents of input.csv to the jgrep.bat script.
(AD Service|GXNM) - Print only on lines which contain 'AD Service' or 'GXNM'.
É simples assim. Ah sim, se você preferir ter um cabeçalho e salvar os resultados em um arquivo, então ainda é um forro:
echo Application,RequesterID,Date,VerifierID>output.txt & cat input.csv|jgrep.bat "(AD Service|GXNM)">>output.txt