InicioInfoRecopilacion de Codigos en Batch (by ---saster---)

Recopilacion de Codigos en Batch (by ---saster---)

Info•12/11/2009
Renombrar fichero a su año de origen


@echo off
:menu
set /p file= archivo a renombrar
if not defined file (goto menu)
if not exist %file% (goto menu)
for %%a in ("file" do (call:date %file%)
:date
set date=%~t1
set date=%date:~0,10%
set date=%date:~-4%
ren %~1 %date%

Años bisiestos


@echo off
:principio
cls
set/p fecha= inserte la fecha(dd,mm,aaaa)
if not defined fecha (goto principio)
set anio=%fecha:~-4%
set mes=%fecha:~-7,2%
set mes=%mes:,=0%
:a
set/a res1=%anio%/400
set/a res2=%res1%*400
if %res2%==%anio% (set var=si && goto siguiente) else (goto b)
:b
set/a res3=%anio%/100
set/a res4=%res3%*100
if %res4%==%anio% (set var=no && goto siguiente) else (goto c)
:c
set/a res5=%anio%/4
set/a res6=%res5%*4
if %res6%==%anio% (set var=si && goto siguiente) else (set var=no && goto siguiente)
:siguiente
if %mes%==01 (set mes=%mes:01=enero% && set dias=31 && goto final)
if %mes%==02 (goto febr)
if %mes%==03 (set mes=%mes:03=marzo% && set dias=31 && goto final)
if %mes%==04 (set mes=%mes:04=abril% && set dias=30 && goto final)
if %mes%==05 (set mes=%mes:05=mayo% && set dias=31 && goto final)
if %mes%==06 (set mes=%mes:06=junio% && set dias=30 && goto final)
if %mes%==07 (set mes=%mes:07=julio% && set dias=31 && goto final)
if %mes%==08 (set mes=%mes:08=agosto% && set dias=31 && goto final)
if %mes%==09 (set mes=%mes:09=septiembre% && set dias=30 && goto final)
if %mes%==10 (set mes=%mes:10=octubre% && set dias=31 && goto final)
if %mes%==11 (set mes=%mes:11=noviembre% && set dias=30 && goto final)
if %mes%==12 (set mes=%mes:12=diciembre% && set dias=31 && goto final) else (goto mes)
:febr
if %var%==si (
set mes=%mes:02=febrero%
set dias=29
goto final
) else (set mes=%mes:02=febrero% && set dias=28 && goto final)
:final
echo el año %anio% %var% es bisiesto
echo %mes% del año %anio% tiene %dias% dias
pause
goto principio


Calculadora compleja (usando keyboard.exe)


@echo off
:ini
title CALCULADORA
mode con cols=29 lines=29
color 1f
if not exist keyboard.exe (goto key)

:menu
cls
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º MENU º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
echo º Sumar º º 1 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
echo º Restar º º 2 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
echo º Multiplicar º º 3 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
echo º Dividir º º 4 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
echo º Potencia º º 5 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ
echo.
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍ»
echo º Salir º º 6 º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍͼ

keyboard.exe
if %errorlevel%==49 (goto suma)
if %errorlevel%==50 (goto resta)
if %errorlevel%==51 (goto mul)
if %errorlevel%==52 (goto div)
if %errorlevel%==53 (goto potencia)
if %errorlevel%==54 (
cls && echo saliendo...
del "keyboard.exe"
ping localhost -n 10>nul
goto:eof
) else (goto menu)

:suma
cls
set/p var=
if not defined var (goto suma)
echo +
set/p var2=
if not defined var2 (goto suma)
set/a res=%var%+%var2%
echo el resultado es %res%
goto sq
:sq
set/p que=desea seguir calculando? s/n
if not defined que (goto sq)
if %que%==s (goto s2) else (goto menu)
:s2
cls
echo %res%
echo +
set/p var3=
set/a res=%res%+%var3%
echo el resultado es: %res%
goto sq

:resta
cls
set/p var=
if not defined var (goto resta)
echo -
set/p var2=
if not defined var2 (goto resta)
set/a res=%var%-%var2%
echo el resultado es %res%
goto rq
:rq
set/p que=desea seguir calculando? s/n
if not defined que (goto rq)
if %que%==s (goto r2) else (goto menu)
:r2
cls
echo %res%
echo -
set/p var3=
set/a res=%res%-%var3%
echo el resultado es: %res%
goto rq

:mul
cls
set/p var=
if not defined var (goto mul)
echo x
set/p var2=
if not defined var2 (goto mul)
set/a res=%var%*%var2%
echo el resultado es %res%
goto mq
:mq
set/p que=desea seguir calculando? s/n
if not defined que (goto mq)
if %que%==s (goto m2) else (goto menu)
:m2
cls
echo %res%
echo x
set/p var3=
set/a res=%res%*%var3%
echo el resultado es: %res%
goto mq

:div
cls
set/p var=
if not defined var (goto div)
echo /
set/p var2=
if not defined var2 (goto suma)
set/a res=%var%/%var2%
echo el resultado es %res%
goto dq
:dq
set/p que=desea seguir calculando? s/n
if not defined que (goto dq)
if %que%==s (goto d2) else (goto menu)
:d2
cls
echo %res%
echo /
set/p var3=
set/a res=%res%/%var3%
echo el resultado es: %res%
goto dq

:potencia
setlocal enabledelayedexpansion
cls
set /p base=base:
if not defined base (goto potencia)
set /p exp=exponente:
if not defined exp (goto potencia)
set res=%base%
if %exp%==0 (echo el resultado es: 1 && goto pq) else (
for /l %%A IN (2,1,%exp%) DO (set /a res=!res!*%base%)
)
echo el resultado es: %res%
:pq
set/p que=desea seguir calculando? s/n
if %que%==s (goto potencia) else (goto menu)

:Key
(
echo n keyboard.dat
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.
)>keyboard.dat
type keyboard.dat|debug>NUL 2>&1
del /f/q/a "keyboard.exe">NUL 2>&1
ren keyboard.dat "keyboard.exe" >nul
goto ini

Cambiar IP estatica


ipconfig/release
netsh interface ip set address name="Conexiones de red inalambricas" source=static 1.1.0.0 255.255.255.0 192.168.1.1 1
netsh interface ip set address name="Conexiones de red inalambricas" source=dhcp
netsh interface ip set dns "Conexiones de red inalambricas" static none

Cronometro sin usar ping


@echo off
mode con cols=34 lines=20
title Cronometro en BATCH
color 2e
:menu
cls
echo %date%
echo CRONOMETRO
echo.
echo 1.Cuenta Ascendente
echo 2.Cuenta Descendente
echo 3.Salir del programa
echo.
set /p opc= pulse un numero:
if not defined opc (goto menu)
if %opc%==1 (goto asc)
if %opc%==2 (goto des)
if %opc%==3 (echo adios&pause>nul&goto:eof) else (goto menu)

:asc
cls
echo Principio:
set /p seg=
if not defined seg (goto asc)
if %seg% LEQ 0 (goto asc)
echo Final:
set /p seg2=
if not defined seg2 (goto asc)
if %seg2% LEQ %seg% (goto asc)
cls
:a
set var=%time:~6,2%
set b=%var%
:b
set var=%time:~6,2%
if %var%==%b% (goto b) else (
set /a seg=%seg% + 1
echo %seg%
if %seg%==%seg2% (pause>nul&goto menu) else (goto a)
)

:des
cls
set /p num=Principio:
if not defined num (goto des)
if %num% LEQ 0 (goto des)
set /p num2=Final:
if not defined num2 (goto des)
if %num2% GTR %num% (goto des)
if %num2% LEQ 0 (goto des)
cls
:c
set var=%time:~6,2%
set b=%var%
:d
set var=%time:~6,2%
if %var%==%b% (goto d) else (
set /a num=%num% - 1
echo %num%
if %num%==%num2% (pause>nul&goto menu) else (goto c)
)

Renombrar fichero a su fecha de origen


@echo off
:menu
set /p file= archivo a renombrar
if not defined file (goto menu)
if not exist %file% (goto menu)
for %%a in ("file" do (call:date %file%)
:date
set date=%~t1
set date=%date:~0,10%
set date=%date:/=-%
ren %~1 %date%

Sucesion de Fibonacci


@echo off
setlocal enabledelayedexpansion
title FIBONACCI
color 0a
set a=1
set b=1
:inicio
set/p var=Terminos de la sucesion ^>
if not defined var (goto inicio)
if %var% LEQ 3 (goto:inicio)
<nul set/p "=0 1 1 "
set /a var=%var%-3
for /l %%a in (1,1,%var%) do (
set/a c=a+b
set/a b=a
set/a a=c
<nul set/p "=!c! "
)
pause>nul

Efecto Matrix


@echo off
mode con cols=130 lines=118
color 0a
:a
<nul set/p var=%random:~1,1% && echo %var%
goto a

Numeros positivos y negativos


::esto es para saber si un numero es positivo o negativo::

:: la idea se me ocurrio con un simple codigo en C++.::

@echo off
set /p num= inserte un numero
if %num% LSS 0 echo el numero es negativo
if %num% EQU 0 echo el numero es 0
if %num% GTR 0 echo el numero es positivo
pause>nul

Calcular potencias


@echo off
:: potencia (elevar) by ---saster---
set /P BASE=Base :
set /P EXPONENTE=Exponente :
if %BASE%.==. exit 1
if %EXPONENTE%.==. exit 1
set resultado=1
FOR /L %%A IN (1,1,%EXPONENTE%) DO set /A resultado=resultado*BASE
echo Resultado : %resultado%
pause
goto:EOF

Raices cuadradas enteras


@echo off
::raiz cuadradas enteras by saster
:inicio
cls
set/p valor=Numero:^>
if not defined valor (goto:inicio)
if %valor%==0 (echo Raiz: 0&pause&goto:inicio)
if %valor% LSS 0 (echo no tiene solucion real&pause&goto:inicio)
set contador=0
call:calcular %valor%
:calcular
set/a contador=%contador% + 1
set/a posible=%contador%*%contador%
if %posible% GTR %1 (echo no es entera&pause&goto:inicio) else (
if %posible%==%1 (echo Raiz: %contador%&pause&goto:inicio) else (
goto:calcular)
)

Triangulos rectangulos


@echo off
setlocal enabledelayedexpansion
mode con cols=42 lines=10
color 27
title Triangulos
:menu
cls
echo. Saber si un triangulo es o no rectangulo
echo.
set/p ladoa= lado a ^>
if not defined ladoa (goto error)
if %ladoa% LEQ 0 (goto error)
set ladoa=%ladoa:ª=.%
set ladoa=%ladoa:º=.%
set ladoa=%ladoa:\=.%
set ladoa=%ladoa:/=.%
set ladoa=%ladoa:#=.%
set ladoa=%ladoa:·=.%
set ladoa=%ladoa:¿=.%
set ladoa=%ladoa=.%
set ladoa=%ladoa:^=.%
set ladoa=%ladoa:+=.%
set ladoa=%ladoa:ñ=.%
set ladoa=%ladoa:-=.%
set ladoa=%ladoa:_=.%
for /f "tokens=1 delims=." %%a in ("%ladoa%" do (set ladoa=%%a)
if not defined ladoa (goto menu)
set/p ladob= lado b ^>
if not defined ladob (goto error)
if %ladob% LEQ 0 (goto error)
set ladob=%ladob:ª=.%
set ladob=%ladob:º=.%
set ladob=%ladob:\=.%
set ladob=%ladob:/=.%
set ladob=%ladob:#=.%
set ladob=%ladob:·=.%
set ladob=%ladob:¿=.%
set ladob=%ladob=.%
set ladob=%ladob:^=.%
set ladob=%ladob:+=.%
set ladob=%ladob:ñ=.%
set ladob=%ladob:-=.%
set ladob=%ladob:_=.%
for /f "tokens=1 delims=." %%a in ("%ladob%" do (set ladob=%%a)
if not defined ladob (goto menu)
set/p ladoc= lado c ^>
if not defined ladoc (goto error)
if %ladoc% LEQ 0 (goto error)
set ladoc=%ladoc:ª=.%
set ladoc=%ladoc:º=.%
set ladoc=%ladoc:\=.%
set ladoc=%ladoc:/=.%
set ladoc=%ladoc:#=.%
set ladoc=%ladoc:·=.%
set ladoc=%ladoc:¿=.%
set ladoc=%ladoc=.%
set ladoc=%ladoc:^=.%
set ladoc=%ladoc:+=.%
set ladoc=%ladoc:ñ=.%
set ladoc=%ladoc:-=.%
set ladoc=%ladoc:_=.%
for /f "tokens=1 delims=." %%a in ("%ladoc%" do (set ladoc=%%a)
if not defined ladoc (goto menu)
if %ladoa% GTR %ladob% (
if %ladoa% GTR %ladoc% (
set/a a=!ladob!*!ladob!+!ladoc!*!ladoc!
set/a a=!a!/!ladoa!
if not !a!==!ladoa! (set rec=no) else (set rec=si)
goto triangulo
) else (
set/a c=!ladoa!*!ladoa!+!ladob!*!ladob!
set/a c=!c!/!ladoc!
if not !c!==!ladoc! (set rec=no) else (set rec=si)
goto triangulo
)
) else (
set/a b=!ladoa!*!ladoa!+!ladoc!*!ladoc!
set/a b=!b!/!ladob!
if not !b!==!ladob! (set rec=no) else (set rec=si)
goto triangulo
)
if %ladob% GTR %ladoa% (
if %ladob% GTR %ladoc% (
set/a b=!ladoa!*!ladoa!+!ladoc!*!ladoc!
set/a b=!b!/!ladob!
if not !b!==!ladob! (set rec=no) else (set rec=si)
goto triangulo
) else (
set/a c=!ladoa!*!ladoa!+!ladob!*!ladob!
set/a c=!c!/!ladoc!
if not !c!==!ladoc! (set rec=no) else (set rec=si)
goto triangulo
)
) else (
set/a a=!ladob!*!ladob!+!ladoc!*!ladoc!
set/a a=!a!/!ladoa!
if not !a!==!ladoa! (set rec=no) else (set rec=si)
goto triangulo
)
if %ladoc% GTR %ladoa% (
if %ladoc% GTR %ladob% (
set/a c=!ladoa!*!ladoa!+!ladob!*!ladob!
set/a c=!c!/!ladoc!
if not !c!==!ladoc! (set rec=no) else (set rec=si)
goto triangulo
) else (
set/a b=!ladoa!*!ladoa!+!ladoc!*!ladoc!
set/a b=!b!/!ladob!
if not !b!==!ladob! (set rec=no) else (set rec=si)
goto triangulo
)
) else (
set/a a=!ladob!*!ladob!+!ladoc!*!ladoc!
set/a a=!a!/!ladoa!
if not !a!==!ladoa! (set rec=no) else (set rec=si)
goto triangulo
)
:error
echo ERROR
echo revise las opciones
pause
goto menu
:triangulo
cls
echo.
echo Solucion:
echo El triangulo de lados: %ladoa% %ladob% %ladoc%
echo %rec% es rectangulo
pause>nul
goto menu

Existencia de unidades


@echo off
For %%A IN (A B C D E F G H I J K L M N O P Q R S T U W X Y Z) DO (
IF exist %%A: echo Hay una unidad de disco con la letra %%A. )
pause>nul
Datos archivados del Taringa! original
0puntos
48visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
7visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

0
000saster000🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.