Librería de funciones y scripts BATCH Actualizado 26/05/07

Iniciado por ne0x, 27 Abril 2007, 14:19 PM

0 Miembros y 1 Visitante están viendo este tema.

bITEBUG

#10
TYPE HEXADECIMAL PARA DOS

Código (bash) [Seleccionar]
@echo off
rem dump.bat
setlocal enabledelayedexpansion
set byte=
set offset=
set op1=
set op2=
if %1==/h goto help
if %1==/p (set op1=%1
shift)
if %1==/pp (set op2=%1
shift)
if not exist %1 (
set errorlevel=1
echo no se encuentra el archivo %1
goto end
)
(
Echo;E %~z1 "%~s1"
Echo;D 0 %~z1
Echo;Q
)>d
debug %~s1<d>dmp
del d
if not defined op1 if not defined op2 (type dmp
del dmp
goto end)
if not defined op1 goto op2
for /f "tokens=*" %%x in (dmp) do (set unformatted=%%x
set formatted=!unformatted:   = ; !
echo !formatted!>>dig)
for /f "eol=; tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15" %%a in (dig) do (set offset=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n
set offset=!offset:;=!
echo !offset:-= !
)
del dmp
del dig
goto end
:op2
for /f "tokens=*" %%x in (dmp) do (set unformatted=%%x
set formatted=!unformatted:   = ; !
echo !formatted!>>dig)
for /f "eol=; tokens=2,3,4,5,6,7,8,9,10,11,12,13,14,15" %%a in (dig) do (set offset=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m
set offset=!offset:;=!
echo !offset:-= !
)
goto end
:Help
echo Muestra el contenido binario de un archivo,
echo.
echo y la sintaxis es la siguiente:
echo Dump ^</p^> ^</pp^> ^<[unidad\ruta\archivo]^>
echo /p Omitira mostrar el texto en ascii
echo /pp Solo mostrara el codigo hexadecimal
:end

del dmp
del dig
:end
set byte=
set offset=

bITEBUG

#11
Un poquito de juego al caso y de paso sentar la base para aplicaciones graficas dentro de un TUI.
A dar volumen a la cosa con un poco de ayuda  del desvirtuado ASCIIart.

Código (bash) [Seleccionar]
Rem Path3D.bat by biTEBUG
@echo off
set a=%2
set b=%3
set c=%4
set d=%5
set e=%6
set f=%7
set g=%8
set switcha=*
set switchb=*
set switchc=*
set switchd=*
set switche=*
set switchf=*
set switchg=*
:ini
set marco=-1
cls
set door=1
set cvisual=1
set lcenter=
set rcenter=.
set horizon=
set fpoint=x
set infarist=/ \
set height=%1
:umbral
set horizon=%horizon%
set /a cvisual=%cvisual%+1
if not %cvisual%==%height% goto umbral


:fuga
if not "%marco%"=="1" ( echo %lcenter:.=^|%\%horizon%%horizon%/%lcenter:.= % ) else ( echo.%lcenter:.=^|%%horizon%.%horizon%/%lcenter:.= %)
set horizon=%horizon:~1%
if "%cvisual%"=="%a%" goto door
if "%cvisual%"=="%b%" goto door
if "%cvisual%"=="%c%" goto door
if "%cvisual%"=="%d%" goto door
if "%cvisual%"=="%e%" goto door
if "%cvisual%"=="%f%" goto door
if "%cvisual%"=="%g%" goto door
goto notdoor
:door
(set /a marco=%marco%*-1
set /a door=%door%*0)
:notdoor
if not "%door%"=="1" (set lcenter=%lcenter%.) else (set lcenter=%lcenter% )
set door=1
set /a cvisual=%cvisual%-1
if not %cvisual%==0 goto fuga
echo %lcenter:.=^|%\%horizon%%horizon%/%lcenter:.= %
:captura

echo %lcenter:.=^|%/%horizon%%horizon%\%lcenter:.= %
set horizon=%horizon%
set lcenter=%lcenter:~,-1%
set /a cvisual=%cvisual%+1
if not %cvisual%==%height% goto captura
if not %cvisual%==%height% goto captura
endlocal
goto forward
if "%a%" gtr "%1" set switcha=/
if "%b%" gtr "%1" set switchb=/
if "%c%" gtr "%1" set switchc=/
if "%d%" gtr "%1" set switchd=/
if "%e%" gtr "%1" set switche=/
if "%f%" gtr "%1" set switchf=/
if "%g%" gtr "%1" set switchg=/
if "%a%"=="1" set switcha=*
if "%b%"=="1" set switchb=*
if "%c%"=="1" set switchc=*
if "%d%"=="1" set switchd=*
if "%e%"=="1" set switche=*
if "%f%"=="1" set switchf=*
if "%g%"=="1" set switchg=*
:if %a% gtr %1 goto stop

if "%a%" gtr "%1" set a=%2
if "%b%" gtr "%1" set b=%3
if "%c%" gtr "%1" set c=%4
echo if "%c%" gtr "%1" set c=%4
if "%d%" gtr "%1" set d=%5
if "%e%" gtr "%1" set e=%6
if "%f%" gtr "%1" set f=%7
if "%g%" gtr "%1" set g=%8
echo if "%c%" gtr "%1" set c=%4
:forward
if defined a set /a a=%a%%switcha%2
if defined b set /a b=%b%%switchb%2
if defined c set /a c=%c%%switchc%2
if defined d set /a d=%d%%switchd%2
if defined e set /a e=%e%%switche%2
if defined f set /a f=%f%%switchf%2
if defined g set /a g=%g%%switchg%2
call wait 2
goto ini
:stop


\                                                / 
  \                                              /   
   \                                            /   
    \                                          /     
     \                                        /     
      \                                      /       
       \                                    /       
        \                                  /         
         \                                /         
          \                              /           
           \                            /           
            \                          /             
             \                        /             
             |           .           /             
             |           .          /               
             | |\                  /                 
             | | \                /                 
             | |  \              /                   
             | |   \            /                   
             | |   |     .     /                   
             | |   ||\        /                     
             | |   || \      /                       
             | |   ||  \    /                       
             | |   ||   \  /                         
             | |   ||    \/                         
             | |   ||    /\                         
             | |   ||   /  \                       
             | |   ||  /    \                       
             | |   || /      \                     
             | |   ||/        \                     
             | |   |/          \                   
             | |   /            \                   
             | |  /              \                 
             | | /                \                 
             | |/                  \               
             | /                    \               
             |/                      \             
             /                        \             
            /                          \           
           /                            \           
          /                              \         
         /                                \         
        /                                  \       
       /                                    \       
      /                                      \     
     /                                        \     
    /                                          \   
   /                                            \   
  /                                              \ 

SuperDraco

Cita de: bITEBUG en 24 Junio 2011, 01:31 AM
Un poquito de juego al caso y de paso sentar la base para aplicaciones graficas dentro de un TUI.
A dar volumen a la cosa con un poco de ayuda  del desvirtuado ASCIIart.

Código (bash) [Seleccionar]
Rem Path3D.bat by biTEBUG
@echo off
set a=%2
set b=%3
set c=%4
set d=%5
set e=%6
set f=%7
set g=%8
set switcha=*
set switchb=*
set switchc=*
set switchd=*
set switche=*
set switchf=*
set switchg=*
:ini
set marco=-1
cls
set door=1
set cvisual=1
set lcenter=
set rcenter=.
set horizon=
set fpoint=x
set infarist=/ \
set height=%1
:umbral
set horizon=%horizon%
set /a cvisual=%cvisual%+1
if not %cvisual%==%height% goto umbral


:fuga
if not "%marco%"=="1" ( echo %lcenter:.=^|%\%horizon%%horizon%/%lcenter:.= % ) else ( echo.%lcenter:.=^|%%horizon%.%horizon%/%lcenter:.= %)
set horizon=%horizon:~1%
if "%cvisual%"=="%a%" goto door
if "%cvisual%"=="%b%" goto door
if "%cvisual%"=="%c%" goto door
if "%cvisual%"=="%d%" goto door
if "%cvisual%"=="%e%" goto door
if "%cvisual%"=="%f%" goto door
if "%cvisual%"=="%g%" goto door
goto notdoor
:door
(set /a marco=%marco%*-1
set /a door=%door%*0)
:notdoor
if not "%door%"=="1" (set lcenter=%lcenter%.) else (set lcenter=%lcenter% )
set door=1
set /a cvisual=%cvisual%-1
if not %cvisual%==0 goto fuga
echo %lcenter:.=^|%\%horizon%%horizon%/%lcenter:.= %
:captura

echo %lcenter:.=^|%/%horizon%%horizon%\%lcenter:.= %
set horizon=%horizon%
set lcenter=%lcenter:~,-1%
set /a cvisual=%cvisual%+1
if not %cvisual%==%height% goto captura
if not %cvisual%==%height% goto captura
endlocal
goto forward
if "%a%" gtr "%1" set switcha=/
if "%b%" gtr "%1" set switchb=/
if "%c%" gtr "%1" set switchc=/
if "%d%" gtr "%1" set switchd=/
if "%e%" gtr "%1" set switche=/
if "%f%" gtr "%1" set switchf=/
if "%g%" gtr "%1" set switchg=/
if "%a%"=="1" set switcha=*
if "%b%"=="1" set switchb=*
if "%c%"=="1" set switchc=*
if "%d%"=="1" set switchd=*
if "%e%"=="1" set switche=*
if "%f%"=="1" set switchf=*
if "%g%"=="1" set switchg=*
:if %a% gtr %1 goto stop

if "%a%" gtr "%1" set a=%2
if "%b%" gtr "%1" set b=%3
if "%c%" gtr "%1" set c=%4
echo if "%c%" gtr "%1" set c=%4
if "%d%" gtr "%1" set d=%5
if "%e%" gtr "%1" set e=%6
if "%f%" gtr "%1" set f=%7
if "%g%" gtr "%1" set g=%8
echo if "%c%" gtr "%1" set c=%4
:forward
if defined a set /a a=%a%%switcha%2
if defined b set /a b=%b%%switchb%2
if defined c set /a c=%c%%switchc%2
if defined d set /a d=%d%%switchd%2
if defined e set /a e=%e%%switche%2
if defined f set /a f=%f%%switchf%2
if defined g set /a g=%g%%switchg%2
call wait 2
goto ini
:stop


\                                                / 
  \                                              /   
   \                                            /   
    \                                          /     
     \                                        /     
      \                                      /       
       \                                    /       
        \                                  /         
         \                                /         
          \                              /           
           \                            /           
            \                          /             
             \                        /             
             |           .           /             
             |           .          /               
             | |\                  /                 
             | | \                /                 
             | |  \              /                   
             | |   \            /                   
             | |   |     .     /                   
             | |   ||\        /                     
             | |   || \      /                       
             | |   ||  \    /                       
             | |   ||   \  /                         
             | |   ||    \/                         
             | |   ||    /\                         
             | |   ||   /  \                       
             | |   ||  /    \                       
             | |   || /      \                     
             | |   ||/        \                     
             | |   |/          \                   
             | |   /            \                   
             | |  /              \                 
             | | /                \                 
             | |/                  \               
             | /                    \               
             |/                      \             
             /                        \             
            /                          \           
           /                            \           
          /                              \         
         /                                \         
        /                                  \       
       /                                    \       
      /                                      \     
     /                                        \     
    /                                          \   
   /                                            \   
  /                                              \ 


Este me ha gustado, mucha imaginación en el code,pero lo he copiado tal cual y no me funciona :/...

saludos
No he vuelto, solo estoy de paso.

bITEBUG

#13
Cita de: pitoloko en 29 Junio 2011, 23:16 PM
Este me ha gustado, mucha imaginación en el code,pero lo he copiado tal cual y no me funciona :/...

saludos
Recien me hice un tiempo para leer tu mensaje:

Mira no lo he revisado correctamente pero si es la misma version que tengo en mi pc a mi me anda sin problemas.

Si hay un error proba cerrar el bucle con un goto end despues del endlocal.

Decime que entrada le diste.

Se supone que tiene que admitir estos parametros: Art [tamaño en numero de lineas] [<numero de puerta n1> <numero de puerta n2>...]

Art 22 15 13 8 5 crea un diseño de 22 lineas en pantalla una puerta de 3 caracteres en el 8o caracter desde el centro y otra puerta de dos caracteres en el 13o desde el centro.

Es cierto que se me pierden algunas aristas pero el desplazamiento parece correcto

por cierto no se si viste ese "call wait.bat 2" sin ese archivo se temina el proceso abruptamente podes remarcar el comando o hacerte un batch de espera del tipo @ping -w 1000 127.0.0.1>nul