Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: bITEBUG en 5 Junio 2011, 02:38 am



Título: como silenciar un comando buchon?
Publicado por: bITEBUG en 5 Junio 2011, 02:38 am
ejemplos:
un set /a al que le faltan operandos
un if de variable no definida
fc
comp
copy sin /y
rd /s sin /q
etc.

los primeros casos son justificados porque pueden deberse a errores(animaladas) propios pero otros a pesar de utiles son buchones de vocacion.


Título: Re: como silenciar un comando buchon?
Publicado por: SuperDraco en 5 Junio 2011, 04:47 am
puedes explicarte mejor?

No entiendo ¿Silenciar?

Ni ¿buchon?


¿Lo que quieres es que al escribir los comandos no aparezca nada en pantalla?

Código:
set /a variable >nul 2>&1
if (esto) else (aquello >nul 2>&1)
fc >nul 2>&1
comp este aquel >nul 2>&1
copy archivo archivo >nul 2>&1
rd /s carpeta >nul 2>&1


Resumiendo: >nul 2>&1

EDITO: bueno la verdad es que en algunos comandos no es necesario redireccionar como te he dicho, con el copy puedes usar un simple ">nul" y ya está.

saludosss


Título: Re: como silenciar un comando buchon?
Publicado por: bITEBUG en 11 Junio 2011, 04:39 am
Exacto pitoloko, es verdad pero otros tienen salidas como de segundo orden, como que mas que dirigidas al operador son dirigidas al programador, muchas operaciones con variables te dan este tipo de error:
set /a c:/windows
(error de division por cero)
y la mejor forma de evitarlo es cersiorarse de que "%var% NEQ 0"
Aplicado al caso anterior el cual es muy comun dentro de algunos bucles for cuando no todos los tokens son predecibles seria "if %var% NEQ 0 (set /a %var%)" supongamos que %var% deberia tratarse de un valor hexadecimal para hacerlo sencillo, clausula if no se cumple set no se lee y adios salida de segundo orden.

Pero prueben este codigo es bien interesante y sirve para contar lineas:

rem line32.bat
@echo off
if exist 32l del 32l
copy %1 "%~n132l">nul
echo 32l>>%~n132l
echo n>c
comp /n=799999999999 %1 %132l<c>32l
for /f "skip=2 tokens=5" %%x in (32l) do (echo.
echo %%x lineas)
del 32l
del c

esta bueno no?
Solo que en este caso en el comando comp no gozamos del beneficio del switch /q que tan gentilmente nos ofrecen copy y rd.

por lo cual obtenemos esta salida:
"¿Desea comparar más archivos (S/N) ?" antes del resultado final.
Decis que si cambio:
comp /n=799999999999 %1 %132l<c>32l
por
comp /n=799999999999 %1 %132l<c>32l>nul 2>&1
la unica salida va a venir del for...do...echo?



Título: Re: como silenciar un comando buchon?
Publicado por: bITEBUG en 11 Junio 2011, 05:08 am
rem line32.bat
@echo off
if exist 32l del 32l
copy %1 "%~n132l">nul
echo 32l>>%~n132l
echo n>c
comp /n=799999999999 %1 %132l<c>32l 2>&1
del "%~n1"32l
for /f "skip=2 tokens=5" %%x in (32l) do if not "%%x"=="(S/N)" echo %%x lineas
del 32l
del c

UNA BELLEZA!
gracias de nuevo.

EDITO: del 32l>nul


Título: Re: como silenciar un comando buchon?
Publicado por: SuperDraco en 11 Junio 2011, 05:20 am
me alegro q lo hayas resuelto tu mismo xD


Pero ¿porque ese número? ¿Te funciona? el número máximo que yo le puedo asignar son nueve nueves:

Código:
comp /n=999999999


Título: Re: como silenciar un comando buchon?
Publicado por: leogtz en 11 Junio 2011, 07:15 am
¿buchón?

Código:
buchón, na.
(De buche1).
1. adj. Dicho del palomo o paloma domésticos: Que se distinguen por la propiedad de inflar el buche desmesuradamente.
2. adj. El Salv. y Méx. Que tiene bocio. U. t. c. s.

¿qué te cuesta apegarte a palabras que todos entendamos y no solo los de tu país?


Título: Re: como silenciar un comando buchon?
Publicado por: bITEBUG en 11 Junio 2011, 08:12 am
¿buchón?

Código:
buchón, na.
(De buche1).
1. adj. Dicho del palomo o paloma domésticos: Que se distinguen por la propiedad de inflar el buche desmesuradamente.
2. adj. El Salv. y Méx. Que tiene bocio. U. t. c. s.

¿qué te cuesta apegarte a palabras que todos entendamos y no solo los de tu país?

Definición de Buchón en los diccionarios y glosarios en Dialectos Locales
 Lunfardo (Argentina)
 (lunf.) Acusador, delator
Confidente o informante de la Policía.


 Lunfardo
 : persona delatora.

es que decir alcahuete es una palabra mas fuerte, me pareceria bueno que internet se adaptara a los dialectos y las formar de hablar locales para asi integrarlas en una forma de hablar global o propia de internet en vez de tender a la media rasa a travez de la operacion de la resta.
Por lo menos entre los hispanoparlantes hay tres o cuatro jergas bastantante populares: el español propio de españa, el mejicano, el argentino y quizas el cubano, personalmente entiendo algo de los cuatro asi que por lo que ves Leo no me apego a ninguno, aunque uso y aplico con mas frecuencia el argentino, quizas daria para otro tema pero es muy tarde para seguir con esto.

Si hay manera de cambiar el topic y a ustedes le parece que es necesario lo cambio, porque esto puede resultar intructivo para varios de los que nos agarramos terrible enredo con esto de las entradas y las salidas yo recuerdo que lo ultimo que lei al respecto fue en el sitio de microsoft (mal lugar para empezar) y lo deje por ahi porque aprendi mas en los post de este sitio  que en la propia fuente.
En cuanto a los terminos tecnicos si algo no se me entiende es porque o los desconozco o los he ido olvidando, sepan disculparme,  y... ELSE (IF NOT ERRORLEVEL==1 ECHO N05 3NT3ND3M0S)
>N05 3NT3ND3M0S


Título: Re: como silenciar un comando buchon?
Publicado por: bITEBUG en 11 Junio 2011, 08:43 am
me alegro q lo hayas resuelto tu mismo xD


Pero ¿porque ese número? ¿Te funciona? el número máximo que yo le puedo asignar son nueve nueves:

Código:
comp /n=999999999

A ver... ya no me acuerdo bien como di con ese numero, mas que nada por aproximacion y suposicion de que el mayor  debia ser multiplo de ocho:

C:\Documents and Settings\Arian>comp /n=8000000000000 string string32l
Argumento numérico incorrecto :
/n=8000000000000

C:\Documents and Settings\Arian>comp /n=799999999999 string string32l
Comparando string y string32l...

El Archivo1 sólo tiene 1 líneas

¿Desea comparar más archivos (S/N) ?n

C:\Documents and Settings\Arian>comp /n=999999999 string string32l
Comparando string y string32l...

El Archivo1 sólo tiene 1 líneas
¿Desea comparar más archivos (S/N) ?n

No, a mi me acepta 1 siete y 11 nueves como maximo.