Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: << Lucas, ¿quién más? >> en 12 Febrero 2010, 00:37 am



Título: Funciones utiles [batch]
Publicado por: << Lucas, ¿quién más? >> en 12 Febrero 2010, 00:37 am
Aqui estan otras más que pude encontrar en mi extinto disco.

EDITO: Ya supe de quien eran los códigos: The Shadow  :silbar:

Invertir cadena de texto

Código:
@echo off
::Por: yo no, si The Shadow ¬¬, jeje
::Info: Invierte una cadena especifica
::Parametros: %1=cadena
::Devuelve: %ohce%=cadena invertida
:ohce
set wrd=
set ohce=
if %1'==' goto er_o
set wrd=%1
set wrd=%wrd:"=cnf%
call :len %wrd%
set /a len=%len%-1
for /l %%a in (%len%,-1,0) do (
call :st %%wrd:~%%a,1%%
)
set ohce=%ohce:"=%
set ohce=%ohce:fnc="%
echo %ohce%
goto :EOF
:st
set p1=%1
set ohce=%ohce%%p1%
goto :EOF
:len
if %1'==' echo La sintaxis es: len [cadena] && goto :EOF
set w=%1
set a=0
set bol=0
:lp
call :cnt "%%w:~%a%,1%%" %a%
if %bol%==1 goto :EOF
set /a a=%a%+1
goto lp
:cnt
set cur=%1
set len=%2
if %cur%a==""a (
set bol=1
)
goto :EOF
:er_o
echo La sintaxis es: h2d [cadena]
goto :EOF

Longitud de cadena

Código:
@echo off
::LEN
::Info: Regresa la longitud de la cadena especificada.
::      Si la cadena contiene espacios, el script
::      tomara la cadena que esta antes del 1er espacio.
::Parametros: %1=cadena
:len
if %1'==' echo La sintaxis es: len [cadena] && goto :EOF
set w=%1
set a=0
set bol=0
:lp
call :cnt "%%w:~%a%,1%%" %a%
if %bol%==1 goto :EOF
set /a a=%a%+1
goto lp
:cnt
set cur=%1
set len=%2
if %cur%a==""a (
echo %len%
set bol=1
)
goto :EOF


Título: Re: Funciones utiles [batch]
Publicado por: ---saster--- en 15 Febrero 2010, 15:49 pm
mmmm se ven buenas y bien trabajadas

yo hice hace poco un code de la longitud de una string, bastante mas sencillo pero que sirve igual
Código
  1. @echo off
  2. set /p string= ingrese cadena ^>
  3. set cont=0
  4. :ini
  5. call:script "%%string%:~%cont%,1%%"
  6. :script
  7. if %1=="" (
  8. echo %cont%
  9. pause>nul
  10. ) else (set /a cont+=1&goto:ini)
  11. goto:eof

me acabo de dar cuenta de que la de shadow al estar en modo comando solo cuenta hasta el primer espacion y el mio cuenta todo, los espacios y mas palabras

se puede arreglar poniendo un

Código:
for /f "tokens=1 delims= " %%a in ("%string%") do (set string=%%a)

si no tambien pueden modificar el de shadow para que no coja solo una palabra, sería cambiar la linea

Código:
set w=%1
por
Código:
set "w=%*"

saludos


Título: Re: Funciones utiles [batch]
Publicado por: xassiz_ en 16 Febrero 2010, 17:20 pm
Si los hizo shadow porque pone Por Lucas AC?


Título: Re: Funciones utiles [batch]
Publicado por: << Lucas, ¿quién más? >> en 20 Febrero 2010, 00:31 am
Si los hizo shadow porque pone Por Lucas AC?

Gracias por tu comentario, pero antes ya había resaltado que los códigos son de The Shadow, amigo  :¬¬.


Título: Re: Funciones utiles [batch]
Publicado por: xassiz_ en 21 Febrero 2010, 22:05 pm
Y que? Si lo pones en el codigo no es lógico.