Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: chulas2106 en 14 Enero 2015, 21:21 pm



Título: Traducir script BASH para usarlo en BATCH
Publicado por: chulas2106 en 14 Enero 2015, 21:21 pm
Hola, lo que pasa es que hice un pequeño script en mi netbook personal (con linux) para buscar nombres de personas en una "base de datos" (un archivo txt con informacion de personas) y por medio del comando grep me mostraba toda la linea que encontraba con toda la info... el problema es que no pense en que en mi trabajo TODAS las pc tienen windows 7 y no conozco absolutamente nada de la programacion BATCH.... si alguien me puede ayudar traduciendo este script a BATCH me haria un favor enorme ;D ;D
aqui va el codigo:

Código
  1. #!/bin/bash
  2. #Este es una prueba de un script para buscar datos en una lista
  3. #escrita en un archivo de texto...
  4.  
  5.  
  6. #Limpiamos la Terminal
  7.  
  8. clear
  9.  
  10. #Solicitamos informacion al usuario
  11.  
  12. #Definimos la variable $txt como lo que introdujo el usuario
  13.  
  14. read -p "Indique el archivo a analizar..." txt
  15.  
  16. #Confirmacion de entrada del usuario
  17.  
  18. echo Usted ha indicado el fichero $txt ...
  19.  
  20. #Solicitamos entrada al usuario
  21.  
  22. #Definimos la variable $dat como lo que introdujo el usuario
  23.  
  24. read -p "Que desea buscar en el fichero? " dat
  25.  
  26. #Confirmacion de entrada del usuario
  27.  
  28. echo Procediendo a buscar $dat en $txt
  29.  
  30. head -n1 $txt |sed "s/,/\t/g"|sed "s/\"//g"
  31.  
  32. #Instruccion grep para buscar palabras en el fichero
  33.  
  34. grep $dat $txt|sed "s/,/\t/g"
  35.  
  36.  


Título: Re: Traducir script BASH para usarlo en BATCH
Publicado por: Eleкtro en 14 Enero 2015, 22:10 pm
1) Puedes descargar los puertos de las herramientas de Linux para Windows:
http://sourceforge.net/projects/unxutils/

2) Una vez descargada las herramientas GNU, los cambios en la traducción Bash > Batch serán mínimos, solo debes usar la sintaxis adecuada para evitar usar caracteres ilegales en Batch y los operadores de Batch.

Puedes leer la ayuda de cada aplicación para conocer las diferencias de sintaxis en Windows, de la siguiente manera:
Código:
app.exe --help

3) Prueba así:

Código
  1. @Echo OFF & Title Batch-script test for GNU tools
  2.  
  3. REM Este es una prueba de un script para buscar datos en una lista
  4. REM escrita en un archivo de texto...
  5.  
  6. :: Limpiamos la Terminal
  7. CLS
  8.  
  9. :: Solicitamos informacion al usuario
  10. :: Definimos la variable $txt como lo que introdujo el usuario
  11. Set /P "txt=Indique el archivo a analizar...: "
  12.  
  13. :: Confirmacion de entrada del usuario
  14. Echo:Usted ha indicado el fichero "%txt%"...
  15.  
  16. :: Solicitamos entrada al usuario
  17. :: Definimos la variable $dat como lo que introdujo el usuario
  18. Set /P "dat=Que desea buscar en el fichero?: "
  19.  
  20. :: Confirmacion de entrada del usuario
  21. Echo:Procediendo a buscar "%dat%" en "%txt%"
  22. (head.exe -n1 "%txt%") | (sed.exe "s/,/\t/g") | (sed.exe "s/\""//g")
  23.  
  24. :: Instruccion grep para buscar palabras en el fichero
  25. (grep.exe "%dat%" "%txt%") | (sed.exe "s/,/\t/g")
  26.  

Saludos