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

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

    No buscas en la carpeta correcta:

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

      FOR %%A IN (FIND "toto" c:\dossier\*.txt) DO (%%A >> c:\resultat.txt)
      0
  2. 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
    1. barnabe0057 Mensajes publicados 14329 Fecha de registro   Estado Colaborador Última intervención   4 929
       
      sí, funciona con una variable.
      0
  3. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
     
    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