Autor
|
Tema: Dudas tontas. (Leído 4,734 veces)
|
SPARTAKOS
Desconectado
Mensajes: 8
|
Buenas. Tengo un par de dudas, quiero sacarmelas de encima. 1. > nul 2>&1 Por ejemplo, en este código de Leo Gutiérrez. lo ví, y no entendí porqué lo puso así, si podría haber puesto "> nul". rem Script que intenta visualizar las unidades for %%_ in (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, u, v, w, x, y, z ) do ( echo Unidad " %%_:" detectada ) )
2. Poner por ejemplo: ¿sería lo mismo que poner: @echo off & ipconfig /release > nul ? Es decir, poner @ delante de cada renglón de code, ¿es lo mismo que si pusiera @echo off al inicio del code? Muchas gracias .
|
|
« Última modificación: 28 Agosto 2010, 19:42 pm por SPARTAKOS »
|
En línea
|
|
|
|
FerJGS
Desconectado
Mensajes: 75
|
Bueno, @ echo off oculta el código, pero @ ipconfig oculta el comando ipconfig...
Y sobre lo del >nul ¿a qué te refieres? ¿dónde tendría que ir ese>nul que dices?
|
|
|
En línea
|
|
|
|
SPARTAKOS
Desconectado
Mensajes: 8
|
for %%_ in (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, u, v, w, x, y, z) do ( dir /b %%_:\ > nul 2>&1 Ahí, no entiendo el porqué de ese > nul 2>&1. Quisiera una explicación de para qué se usa, y diferencia con el > nul .
|
|
|
En línea
|
|
|
|
flony
Desconectado
Mensajes: 583
|
>nul 2>&1 bue >nul2... STDOUT 1 Salida en la ventana del Símbolo del sistema STDERR 2 Salida de errores en la ventana del Símbolo del sistema >& Escribe la salida de un controlador en la entrada de otro controlador
Escribe la salida del comando en un archivo o un dispositivo, en lugar de en la ventana del Símbolo del sistema. STDERR 2 Salida de errores en la ventana del Símbolo del sistema. Para redirigir toda la salida, incluyendo el controlador 2 (es decir, STDERR), del comando ipconfig al controlador 1 (es decir, STDOUT) y redirigir la salida a Salida.log, escriba:
ipconfig.exe>>salida.log 2>&1 otro ejemplo Para buscar Archivo.txt y redirigir el controlador 1 (es decir, STDOUT) y el controlador 2 (es decir, STDERR) a Buscar.txt, escriba:
findfile archivo.txt>buscar.txt 2<&1
en definitiva el nul es para que no se vea la redireccion a stderr volviendola a redirigir a stdout todo esto sin que se vea, quedando "guardadas" los errores y aciertos de buscar todos los directorios posibles entre a y z ojala te sirva de ayuda hace un tiempo me tarde bastante en saber para q era esos simbolos...son todos de redireccion mas info inicio...ejecutar...%windir%\hh.exe ms-its:%windir%\Help\ntcmds.chm::/ntcmds.htm en la parte de conceptos...utlizar herrramientas de secuencia...archivo de lote...utilizar operadores de redireccion
|
|
« Última modificación: 28 Agosto 2010, 21:21 pm por flony »
|
En línea
|
si un problema no tiene solucion entonces no es un problema...es algo inevitable
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Cuando un comando es ejecutado correctamente la salida puede aparecer en stdout, pero si hay un error, puede aparecer en stderr.
Es para ocultar tanto stdout como stderr.
|
|
« Última modificación: 28 Agosto 2010, 21:50 pm por Leo Gutiérrez. »
|
En línea
|
|
|
|
SPARTAKOS
Desconectado
Mensajes: 8
|
Perdón por mi ignorancía, pero entendí lo del @, y no lo de > nul 2>&1. Si alguien me lo pudiera explicar, si puede ser, de forma más sencilla, como para un principiante (que es lo que soy), se los agradecería pero muchísimo.
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Cuando ejecutas un comando, si este se ejecuta bien se muestra en pantalla(stdout) sino se va a stderr(dispositivo de errores). Mira, teclea esto en el cmd.exe Aunque redirijas a NUL, deberías ver el mensaje de error, esto es porque el dispositivo de salida estandard(stdout) y el dispositivo de errores son distintos. En cambio si haces: No verás nada, ya que el mensaje de error fue enviado al "standard error stream". Tomando esto: Se mezclan stdout y stderr en un solo dispositivo y son redirigidos a NUL. Saludos.
|
|
|
En línea
|
|
|
|
SPARTAKOS
Desconectado
Mensajes: 8
|
¿Entonces sería para que no salga algún mensaje de error, si es que lo hay?
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Sí, para que no salga NADA en pantalla, puesto que ambos dispositivos son mezclados y envíados a NUL.
Saludos.
|
|
|
En línea
|
|
|
|
FerJGS
Desconectado
Mensajes: 75
|
Bueno, mira el & sirve para enlazar comandos
por ejemplo
@echo off cls
se peude combinar con
@echo off&cls
Al escribir
comando > nul 2>&1 && (
Estás enviando ambos a nul.
|
|
|
En línea
|
|
|
|
|
|