elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] Guardar salida de comando a variable
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] Guardar salida de comando a variable  (Leído 16,078 veces)
ddffgg

Desconectado Desconectado

Mensajes: 2


Ver Perfil
[BATCH] Guardar salida de comando a variable
« en: 7 Febrero 2013, 09:46 am »

Hola a todos,

Controlo más bien poco Batch y no veo la forma de poder guardar la salida de varios comandos concatenados con | a una variable.

Os pongo un ejemplo de lo que pretendo en sh:

Código
  1. fichero=$(ls -1 | grep fichero_log | sort | tail -n 1)
  2. tail -f $fichero

Que sería lo mismo que:

Código
  1. tail -f `ls -1 | grep fichero_log | sort | tail -n 1`

Dispongo de los comandos tail.exe y grep.exe para facilitarme un poco la vida (y la sintaxis) a la hora de elaborar scripts en Batch. Lo único que me faltaría sería ver la forma de guardar la salida de los comandos con | en una variable.

Gracias de antemano!


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [BATCH] Guardar salida de comando a variable
« Respuesta #1 en: 7 Febrero 2013, 10:28 am »

No puedes hacerlo diréctamente como en Bash.

Código
  1. For /F "Tokens=*" %%# in ('comando1 ^| comando2') Do (Set "Variable=%%#")

Aprende el uso del FOR /F, porque lo vas a necesitar.

Saludos


En línea

ddffgg

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [BATCH] Guardar salida de comando a variable
« Respuesta #2 en: 7 Febrero 2013, 11:30 am »

Muchas gracias por la ayuda! Ya veo que parece ser algo así como una navaja suiza.

Como nota, indicar que he tenido que usar un único "%" antes de "#" para que me funcionase. Uso Windows 7 Profesional 64 bits por si tuviese que ir.

Lo dicho, gracias por la ayuda; me lo anoto que a buen seguro tendré que usarlo muchas veces.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [BATCH] Guardar salida de comando a variable
« Respuesta #3 en: 7 Febrero 2013, 12:30 pm »

Como nota, indicar que he tenido que usar un único "%" antes de "#" para que me funcionase.

Si lo ejecutas diréctamente desde la consola sólo tienes que usar un símbolo %, pero en un script tienes que escribir dos %%, para que al ejecutarlo la CMD reconozca el símbolo, en otros casos tendrás que usar 4, 6, 8 símbolos, y todos los que hagan falta dependiendo del subnivel en el que se encuentre la variable... pero esto ya es otro tema.

Bienvenido al extraño y liante (pero no dificil) Batch.
Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[BATCH][solucionado] guardar ip externa en una variable
Scripting
queteimporta 0 5,303 Último mensaje 21 Marzo 2008, 14:26 pm
por queteimporta
[Batch] Poner el resultado de un comando en una variable
Scripting
moikano→@ 7 34,424 Último mensaje 25 Diciembre 2010, 00:44 am
por FerJGS
Guardar salida de funcion en otra variable
Programación C/C++
dennis094 2 2,320 Último mensaje 27 Noviembre 2013, 18:04 pm
por dennis094
Redirigir el resultado de un comando a una variable ¿Se puede? ¿Cómo? [BATCH]
Scripting
LoqiRex2 3 4,535 Último mensaje 16 Noviembre 2014, 22:10 pm
por Eleкtro
Ayuda para formatear salida de un comando
Scripting
Last_squat 2 2,605 Último mensaje 16 Mayo 2018, 14:12 pm
por Last_squat
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines