Batch script that searches for a string and returns the result

Zorc -  
dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   -
Hola,

estoy enfrentando un problema en mi script por lotes.
A continuación el flujo que me gustaría implementar:

Para todos los archivos contenidos en c:\dossier\*.txt buscar la cadena "toto". Si el archivo contiene esta cadena "toto" devolver la ruta de este archivo en c:\resultat.txt

Esto es lo que he intentado pero no funciona

FOR /F "tokens=1,2* delims=: " %%A IN ('FIND /C "toto" c:\*.txt) DO (
IF %%A GTR 0 ( %%B >>resultat.txt )
)

Gracias por tu ayuda

Configuración: Windows 7 / Internet Explorer 9.0

3 respuestas

barnabe0057 Mensajes publicados 14329 Fecha de registro   Estado Colaborador Última intervención   4 930
 
Hola,

No buscas en la carpeta correcta:

FIND /C "toto" c:\*.txt
0
barnabe0057 Mensajes publicados 14329 Fecha de registro   Estado Colaborador Última intervención   4 930
 
Y creo que hay algo más simple por hacer:

FOR %%A IN (FIND "toto" c:\dossier\*.txt) DO (%%A >> c:\resultat.txt)
0
TAC
 
¿Y se puede reemplazar "toto" por una variable declarada previamente?

SET VARIABLE=toto

FOR /F "tokens=1,2* delims=: " %%A IN ('FIND /C "%VARIABLE%" c:\*.txt) DO (
IF %%A GTR 0 ( %%B >>resultat.txt ) )

Gracias
0
barnabe0057 Mensajes publicados 14329 Fecha de registro   Estado Colaborador Última intervención   4 930
 
sí, funciona con una variable.
0
dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
 
bonjour
for /f "tokens=1-3 delims=: " %%A in ('find /c "toto" C:\dossier\*.txt ') do if %%C NEQ 0 echo %%B >> c:\resultat.txt 
0