Comparto con ustedes una serie de codigos que tengo en mi "libreria batch", los cuales he utilizado con algun fin en especifico, o tan solo por distraerme un rato y escribir algo en batch, puede que uno que otro sea util, eso no lo se, lo dejo a su criterio, si tienen alguna duda con respecto a alguno de ellos me lo hacen saber que con gusto explicare.
Resolver: Programming Challenge 4 - US Telephone Keypads
Resolver: Programming Challenge 5 - Reverse Alphabet Codes
Resolver: Reto 94 - Inicio : World of Wargame
Implementacion de Ordenamiento de burbuja
Resolver: Programming Challenge 4 - US Telephone Keypads
Código:
@Echo Off&title PhoneKeypad
::PoC US Telephone Keypad Calculator
::CSTutoringCenter Challenge
::Coded by SmartGenius
::Try with String = "Practice" ->> 37632
Setlocal EnabledelayedExpansion
Call :Init
:Main
Cls&Echo.
Set /p "String= String > "
If Not Defined String Goto :Main
Call :StrLen "%String%" StrLen
For /l %%a in (0,1,!StrLen!) do Call :Solve "!String:~%%a,1!"
Set /a "Result=1!R!"
Echo. Res = !Result!
REM Echo. Calcular 1!R!
Echo.
Pause
Exit
:Solve
If "%~1"==" " Goto :EOf
For /f "tokens=1,2 delims==_" %%A in ('Set _[^|Find /I "%~1"') do (
Set "R=!R!*%%B"
Goto :Eof)
:Init
Set "Dic=ABCDEFGHIJKLMNOPRSTUVWXY
Set "I=0"
For /l %%N in (2,1,9) do (
Call Set "_[%%N]=%%N_%%Dic:~!I!,3%%"
Set /a "I+=3")
Goto :Eof
:StrLen
SetLocal
For /f %%_ in ('Cmd /U /C Echo.%~1^|More') Do Set/A "Len+=1"
(EndLocal&Set /a "%~2=%Len%-1"&Exit/B 0;)
Resolver: Programming Challenge 5 - Reverse Alphabet Codes
Código:
@Echo Off&Title Reverse Alphabet
::Reverse Alphabet Codes
::CSTutoringCenter Problem #5
::Coded by SmartGenius
Setlocal EnableDelayedExpansion
Set "Str=The quick brown fox jumped over the cow"
Set "Dic= zyxwvutsrqponmlkjihgfedcba"
:Main
Cls&Echo.
Set /p "String= String > "
If Not Defined String Set "String=%Str%"
Call :Decode
Echo.
Echo. Result= !R!
Echo.
Pause
Exit /b 0
:Decode
If Not Defined String (Set /a "R=0!Q!"&Goto :EOf)
Set "Tmp=%String:~0,1%"
For /l %%N in (0,1,26) do (
If /I "!Dic:~%%N,1!"=="%Tmp%" (Set "Q=!Q!+%%N"))
Set "String=%String:~1%"
Goto :Decode
Resolver: Reto 94 - Inicio : World of Wargame
Código:
@Echo Off&title Solucion Reto #94-Primos WOW Sinfocol
::Solucion del Reto "94 - PRIMOS" de World of Wargame de Sinfocol
::Coded by SmartGenius
Setlocal Enabledelayedexpansion
Set "Msg=009 020 086 033 009 020 024 038 086 021 032 027 006 015 009 020 001 012 024 086 014 015 022 008 032 086 006 024 021 015 001 086 010 009 020 015 038 086 006 001 027 008 015 020 020 024 086 036 086 018 015 034 015 087 086 020 001 086 006 015 012 032 009 022 001 086 030 024 006 001 004 001 086 009 020 086 028 001 035 024 010 024 022 086 008 009 030 027 001 028 086 008 009 020 086 025 001 020 009 022 026 032 009 086 008 009 086 025 001 016 001 087 086 027 045 063 058 065 045 063 064 039 086 006 050 046 062 039 044 057 006 057 056 022 065 055 045 062 057 063 022 057 025 062 050 055 057 063 076 074 075 074"
:: Este diccionario se hace en base al texto del reto que dice que se debe
:: usar mayusculas, minusculas, espacio y punto.
Set "Dic=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ."
Echo.
Echo. Por favor espere....
Echo. Calculando Numeros NO primos
:NoPrimos
::Calcular Numeros NO Primos del Rango 1 a 100
Set "NP=1"
For /l %%N in (2,1,100) do (
Call :EsPrimo %%N
If "!S!"=="F" (Set "NP=!NP!,%%N")
)
REM Echo. Numeros No Primos = %NP%
::Armar Parejas de Numero_NO_Primo;Caracter_del_Diccionario
Echo. Creando Parejas de Equivalencias
Set /a "Pair=0"
For %%M in (%NP%) do (
Set "Tmp=00%%M"
Call Set "Pair[!Pair!]=!Tmp:~-3!;%%Dic:~!Pair!,1%%"
Set /a "Pair+=1"
)
REM Set Pair[
Echo. Decodificando el mensaje
Call :Decode %Msg%
Echo.
Echo. Resultado = %Result%
Echo.
Pause
exit /b 0
:Decode
If ["%~1"]==[""] (Goto :Eof)
For /f "tokens=1,2 delims=;" %%C in ('Set Pair[^|Find "%1"') do (Set "Result=!Result!%%D")
Shift
Goto :Decode
:EsPrimo
Set "D="
Set "M=%1"
for /l %%_ in (1,1,%M%) do (
set /a "O=%M%%%%%_"
if !O! equ 0 set /a "D+=1")
if %D% equ 2 (Set S=T) else (Set "S=F")
Goto :Eof
Código:
@Echo Off
::Ordenamiento Burbuja
::Coded by SmartGenius
Setlocal EnableDelayedExpansion
If ["%~1"]==[""] Echo. No Parameters&Exit /b 1
:Input
Set /a "C+=1"
Set "P%C%=%~1"
Shift
If ["%~1"]==[""] (
If Not 1 EQU %C% (
Goto :Sort
) Else (
Echo. %P1%
Exit /b 0
))
Goto :Input
:Sort
Set /a "N=C","Ni=C-1"
For /l %%I in (2,1,%N%) do (
For /l %%J in (1,1,%Ni%) do (
Set /a "Ji=%%J+1"
Call Set "Pk=%%P!Ji!%%"
If !P%%J! GTR !Pk! (
Set "T=!P%%J!"
Set "P%%J=!Pk!"
Set "P!Ji!=!T!"
)))
Echo. Salida
For /l %%C in (1,1,%C%) do (Echo. !P%%C!)
Exit /b 0