2012-07-30 27 views
5

Intentando probar una cadena para ver si contiene una subcadena en un archivo por lotes de Windows.Windows Batch file - pipe to FIND

Esto es lo que tengo hasta ahora:

echo %1 | find "message" 
if %errorlevel% == 0 echo contains string 

La salida de línea de comandos para esto es (el contenido de% 1 fue "mensajes \ Message.js"):

 
messages\Message.js 
contains string 

Los El problema que estoy teniendo es que la única forma en que puedo hacer que esto funcione es con la línea exacta: echo %1 | find "js".

¿Cómo puedo hacer esto sin hacer eco de la ruta del archivo cada vez? Cuando elimino el echo, el sistema operativo intenta abrir el archivo. Me encantaría guardar la ruta del archivo a una variable, pero no funcionó, siempre terminé con una variable vacía.

Respuesta

4
echo %1 | find "message" > NUL 
    if %errorlevel% == 0 echo contains string