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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  El equivalente de: variable=$(comando -opciones) de linux en bat?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: El equivalente de: variable=$(comando -opciones) de linux en bat?  (Leído 7,295 veces)
morenochico

Desconectado Desconectado

Mensajes: 167


Ver Perfil
El equivalente de: variable=$(comando -opciones) de linux en bat?
« en: 10 Septiembre 2009, 02:04 am »

En el shell de linux se puede hacer lo siguiente
Código:
variable=$(comando -opcion | otro_comando)
echo variable

pero en bat no he encontrado nada igual, lo mas parecido que hay es:
Código:
ping -n 1 localhost | findstr /R TT > salida.txt
set /P variable=<salida.txt
echo %variable%

el detalle de que la salida se mande a archivo es que ejecutando ese comando miles de veces el acceso a disco se vuelve lento, directorios de solo lectura etc.


En línea

FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: El equivalente de: variable=$(comando -opciones) de linux en bat?
« Respuesta #1 en: 10 Septiembre 2009, 02:18 am »

Código:
@ECHO OFF
REM ping -n 1 localhost | findstr /R TT > salida.txt
REM intentas que te diga el numero de TTL que salio?
REM set /P variable=<salida.txt
REM estas mandando un comando completo y complejo a la variable por lo que variable queda vacia.-
REM echo %variable%
REM PAUSE
Podrias utilizar algo como lo siguiente, obviamente puedes evitar crear las dos primeras variables, teniendo cuidado de poner el simbolo "^" antes de la | y antes de >
Código:
@ECHO OFF
SET "HOLA=ping -1 LOCALHOST"
SET "Comando=FINDSTR.exe ^/R TT ^>salida.txt"
REM SET "AhoraSexD=%HOLA% %COMANDO%"
REM aca el echo es solo para que veas como se van mostrando las variables o como se van ejecutando.-
ECHO %HOLA% %COMANDO%
REM ECHO %AhoraSexD%
%HOLA% | %COMANDO%
PAUSE

PAUSE

Espero que te sirva de algo.

Saludos, si estoy equivocado en algo PORFAVOR corrijanme ^^

PD: NO tomas en cuenta los REM porke mientras lo escribia comentaba algunas cosas que no servian (segun yo)


« Última modificación: 10 Septiembre 2009, 03:12 am por Panxulingo » En línea

Asdf debería ser algún tipo de función.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: El equivalente de: variable=$(comando -opciones) de linux en bat?
« Respuesta #2 en: 10 Septiembre 2009, 03:28 am »

Código:
for /f "tokens=*" %%_ in ('comando') do (set "variable=%%_")
echo %variable%

La solución también la hubieras podido encontrar en el tema "Acciones sobre archivos de texto".

http://foro.portalhacker.net/index.php/topic,83725.0.html
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
morenochico

Desconectado Desconectado

Mensajes: 167


Ver Perfil
Re: El equivalente de: variable=$(comando -opciones) de linux en bat?
« Respuesta #3 en: 10 Septiembre 2009, 20:30 pm »

No como buscaba pero al menos tengo algo con que trabajar
Código:
@echo off
setlocal enabledelayedexpansion
set comando=ping -n 1 localhost | findstr /L 'TTL'
for /f "tokens=1,2,3,4,5,6,7,8,9,10" %%_ in ('%comando%') do (set /a "lineas_=%%_"
call:si %%_
)
goto:EOF
:si
if %1%==Reply ( echo ok
) else ( echo Nop )
goto:EOF
pause

Y es que realmente si quiero trabajar con comandos "complejos", ver una variable, formatearla, compararla ya sea como numero, fecha o alguna otra regla. Algunas veces es cuestion de solo si es correcto o incorrecto, otras sumar o sacar su complemento, sacar una estadistica  etc.

El prolema es que esa varialbe puede esta en el nombre de un archivo, su fecha de creacion o dentro del archivo.

El problema que tenia es con "|" ya que siempre era el que truncaba la instruccion.  A ver si en una de esas sale una instruccion donde no tenga que usar el for.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] Poner el resultado de un comando en una variable
Scripting
moikano→@ 7 34,507 Último mensaje 25 Diciembre 2010, 00:44 am
por FerJGS
[cmd] comando equivalente a who (linux) en Windows (SOLUCIONADO)
Windows
moikano→@ 5 15,009 Último mensaje 21 Agosto 2011, 23:37 pm
por moikano→@
system(variable) en C linux
Programación C/C++
soyloqbuskas 2 2,361 Último mensaje 6 Octubre 2012, 01:24 am
por rir3760
[SOLUCIONADO] ¿Cual es el equivalente en .NET al comando MKLINK?
.NET (C#, VB.NET, ASP)
Eleкtro 3 2,825 Último mensaje 23 Julio 2013, 17:46 pm
por raul338
Comando equivalente en Linux
GNU/Linux
:ohk<any> 3 2,446 Último mensaje 15 Agosto 2015, 20:55 pm
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines