Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Dany3j en 24 Enero 2012, 13:12 pm



Título: [Batch][Solucionado] COmo se llaman y para que sirven estos simbolos?
Publicado por: Dany3j en 24 Enero 2012, 13:12 pm
Hola, como les va tengo una pequeña duda, he leído varios tutoriales en el foro y veo muchos símbolos que no se para que son y sin embargo los uso a diario.  :laugh:

Si alguien me puede decir el nombre y para que sirve. Por ejemplo

Para que es este símbolo | y porque a veces lo usan así ||  

Este otro >nul aveces lo veo así 2>> nul y otras parecidas

Este otro ^ aveces lo veo así ^|

Salu2  ;-)


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Eleкtro en 24 Enero 2012, 14:21 pm
he leído varios tutoriales en el foro y veo muchos símbolos que no se para que son y sin embargo los uso a diario.  :laugh:

 :¬¬ Seguro que has leido un manual?
Leiste la explicación del supuesto manual?...


Intentaré explicarlo a mi modo...
Esos comandos son para redireccionar.

| Se definen como "pipes", y sirven para redireccionar el output de un comando, al input de otro comando.
Código:
Dir /B "*.*" | Find /V /C ""
Para que se entienda, En ese ejemplo, El comando de la derecha (FIND) trabaja sobre la salida del primer comando (DIR).

>Nul  Sirve para redireccionar la salida de un comando.
2>> Sirve para redireccionar la salida de un error del comando (Si diese error).

Ejemplo:
Código:
@echo off
Dir /B "dddddddd" >nul
Dir /B "dddddddd" 2>nul
Pause >Nul

El primer comando del DIR muestra el error
El segundo comando del DIR  no muestra el error.

^ Sirve para escapar caracteres espaciales (Como el "|" de la pipe) para que funcionen dentro de un nivel inferior, Como por ejemplo dentro de un FOR.

Saludos.



EDITO
Y aquí tienes el resto... www.robvanderwoude.com/redirection.php (http://www.robvanderwoude.com/redirection.php)


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Geormarsch en 24 Enero 2012, 14:28 pm


Código
  1. @echo off
  2. Dir /B "*.*" | Find /V /C ""
  3.  

Este codigo te ubica en un directorio?
pero despues que hace el find?


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Eleкtro en 24 Enero 2012, 14:44 pm
Este codigo te ubica en un directorio?
no se a que te refieres esxactamente con ubicar, pero...

CD ubica
Dir lista





pero despues que hace el find?
Los parámetros que he usado con el comando find son:
Código:
/V          Muestra todas las líneas que no tengan la cadena especificad
/C          Muestra sólo el número de líneas que contienen la cadena.


Entonces, con el comando dir /B "*.*" (En este caso) recibo un output de 6 lineas, exactamente este:

Código
  1. C:\Users\Administrador\Desktop>dir /B "*.*"
  2. chars.txt
  3. fdg.bat
  4. Listdlls.exe
  5. STESV [ByYeisus]
  6. TESV.exe.lnk
  7. winsxs.lnk

Y con "Find" busco "" de forma inversa usando /V, y con /C muestra el número de lineas de ese resultado:

Osea, en este caso, el ejemplo de antes muestra el número de líneas del output del dir:

Código:
C:\Users\Administrador\Desktop>dir /B "*.*" | find /v /C ""
6


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Geormarsch en 24 Enero 2012, 14:50 pm
Y con "Find" busco "" de forma inversa usando /V, y con /C muestra el número de lineas de ese resultado: Osea, en este caso, el ejemplo de antes muestra el número de líneas del output del dir



entonces te muestra el numero de lineas de lo que especifiques, que otros usos le puedes dar al find?


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Eleкtro en 24 Enero 2012, 15:15 pm
que otros usos le puedes dar al find?

Solo esos xd

Buscar cadenas en la salida de un comando, o buscar dentro de archivos de texto.


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Geormarsch en 24 Enero 2012, 15:25 pm
Claro despues de usar el find automaticamente muestra una respuesta..
sin necesidad de usar un echo??

Me referia si se puede utilizar aparte de cortar lineas


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: leogtz en 24 Enero 2012, 17:26 pm
Claro despues de usar el find automaticamente muestra una respuesta..
sin necesidad de usar un echo??

Me referia si se puede utilizar aparte de cortar lineas

Cada comando tiene una salida, que es mostrada en la salida standard (la pantalla).

Cuando tu haces esto:

comando1 | comando2

Pasas la salida del comando comando1 a la entrada del comando comando2.

|| se utiliza en ejecución condicional y significa un "else".

Ejemplo:

Código:
comando1 && (
rem todo salió bien
) || (
rem algo salió mal
)

Si el comando se ejecutó correctamente se ejecuta el código del &&, sino el del ||.


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Eleкtro en 24 Enero 2012, 18:03 pm
Leo, ¿sabes si es posible redireccionar la salida a un archivo pero en segundo plano?

Por ejemplo, quiero hacer esto:

Código:
Dir > archivo

Pero quiero que de todas formas se muestre la salida en la consola...

un saludo


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Dany3j en 24 Enero 2012, 23:34 pm
muy buena la explicación,  EleKtro H@cker y Sr Leo, a ese tipo de explicación me refería. Sobre todo como explico Elektro sobre >nul y leo sobre ||

Seria muy útil crear un pequeño manual o agregarlo a los que ya hay, sobre ese tipo de símbolos que me imagino que hay otros mas.

También sobre las variables como este ejemplo

set hora=%time:~0,-6% lo de color rojo no se entiende mucho por lo novatos.

Salu2.


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: leogtz en 24 Enero 2012, 23:48 pm
Leo, ¿sabes si es posible redireccionar la salida a un archivo pero en segundo plano?

Por ejemplo, quiero hacer esto:

Código:
Dir > archivo

Pero quiero que de todas formas se muestre la salida en la consola...

un saludo

Que yo sepa no, solo hay manera de trabajar con un descriptor a la vez.

Habría que ver si hay alguna implementación del comando "tee" de linux pero para windows.


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Maya_cachondo en 25 Enero 2012, 11:25 am
Citar
set hora=%time:~0,-6% lo de color rojo no se entiende mucho por lo novatos.

Para esto, mírate esta chincheta:
http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html (http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html)


Título: Re: [Batch] COmo se llaman y para que sirven estos simbolos?
Publicado por: Dany3j en 26 Enero 2012, 21:21 pm
Gracias, chicos, este tema lo podemos dar por solucionado.

Salu2 :adios: