locked
Shell de busqueda en powerShell RRS feed

  • Pregunta

  • Buenas tardes.

    Soy nuevo en poweshell pero he visto un comando llamado Select-String que funciona parecido al grep de linux.

    estoy tratando de hacer una shell que realiza unas busquedas en un archivo y enviarlo a un log.

    Select-String "Texo" .\ConsoleLog.0.txt >c:\logprueba.txt

    Cuando lo ejecuto desde la linea de comando de powershell funciona pero cuando lo ejecuto como una tarea de procesamiento por lotes me genera el siguiente error:

     

    C:\Admon\BATS>select-string -pattern "Texto" -path $Location  1>c:\logprueba.txt
    'select-string' is not recognized as an internal or external command,
    operable program or batch file.

     

    Adicionalmente no me deja programarlo por el administrador de tareas.

     

    Si alguien me puede ayudar le agradezco

     

    miércoles, 23 de febrero de 2011 16:39

Respuestas

  • Si estás lanzando ese comando desde un BAT es normal que no funcione. Debes invocar a PowerShell para que funcione. Para ello, puede poner tu comando PowerShel en un archivo de extensión ps1 (en el ejemplo Search.ps1, y desde la ventana de comandos o un bat lo invocas así:

     

    powershell -command c:\scriptPS\Search.ps1

     


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Marcado como respuesta Ismael Borche viernes, 1 de abril de 2011 2:06
    lunes, 14 de marzo de 2011 11:44
    Moderador
  • Desde un bat, o desde una consola cmd puedes utilizar el comando findstr.

     

     Por ejemplo, FINDSTR "texto" x.y busca "texto" en el archivo x.y.  
    Mas info en: http://technet.microsoft.com/en-us/library/bb490907.aspx

    Aun asi, te recomiendo instalar powershell, es muchisimo mas potente.

     

    Saludos

    • Marcado como respuesta Ismael Borche viernes, 1 de abril de 2011 2:07
    martes, 15 de marzo de 2011 17:31

Todas las respuestas

  • Si estás lanzando ese comando desde un BAT es normal que no funcione. Debes invocar a PowerShell para que funcione. Para ello, puede poner tu comando PowerShel en un archivo de extensión ps1 (en el ejemplo Search.ps1, y desde la ventana de comandos o un bat lo invocas así:

     

    powershell -command c:\scriptPS\Search.ps1

     


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Marcado como respuesta Ismael Borche viernes, 1 de abril de 2011 2:06
    lunes, 14 de marzo de 2011 11:44
    Moderador
  • Desde un bat, o desde una consola cmd puedes utilizar el comando findstr.

     

     Por ejemplo, FINDSTR "texto" x.y busca "texto" en el archivo x.y.  
    Mas info en: http://technet.microsoft.com/en-us/library/bb490907.aspx

    Aun asi, te recomiendo instalar powershell, es muchisimo mas potente.

     

    Saludos

    • Marcado como respuesta Ismael Borche viernes, 1 de abril de 2011 2:07
    martes, 15 de marzo de 2011 17:31