elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI  (Leído 6,690 veces)
Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
[BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
« en: 5 Diciembre 2012, 03:00 am »

Morf es una pequeña aplicación que transforma el texto Unicode a ANSI, se recomienda su uso para archivos por lotes.
Acepta caracteres especiales(como: < > &), sin dañar la sintaxis ni omitir los caracteres en el archivo final.
También se puede utilizar para el cifrado de archivos(con un poco de recursividad).
Espero que les sirva la aplicación :D.
NOTA:Versiones posteriores ↓
Código
  1.  
  2. @echo off
  3. Rem Unicode_To_Ansi=Morf
  4. Rem solo valido unicode, no unicode big endian
  5. Rem acepta caracteres especiales :D
  6. Rem script creado por segadorfelix
  7. Rem funciona por linea de comandos
  8. 
  9. IF ["%~1"]==["-t"] goto text
  10. IF ["%~1"]==["-T"] goto text
  11. IF ["%~1"]==["-f"] goto frase
  12. IF ["%~1"]==["-F"] goto frase
  13. IF ["%~1"]==["-P"] goto palabra
  14. IF ["%~1"]==["-p"] goto palabra
  15. echo Este script transforma un texto en Unicode a Ansi
  16. echo Funcionamiento del script:
  17. echo morf -T "Ubicacion del text" Trasnfoma un texto completo a ANSI
  18. echo Ejemplo:
  19. echo morf -T "%userprofile%\Desktop\emoticonos.txt"
  20. echo morf -F "Frase" Trasnfoma una frase a ANSI
  21. echo Ejemplo:
  22. echo morf -F "õl á©illante"
  23. echo morf -P "Palabra" Trasnfoma una palabra a ANSI
  24. echo Ejemplo:
  25. echo morf -P "á©illante"
  26. echo Todas las conversiones se ponen en un archivo .ini
  27. echo con el nombre ANSI, junto con un numero al azar,
  28. echo exceptuando transformacion de texto.
  29. exit /B
  30. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  31. :text
  32. call:texto "%~2"
  33. exit /B
  34. :texto
  35. set text=%~f1
  36. type %text%>>%text%_ANSI
  37. echo Transformacion completada.
  38. Goto:EOF
  39. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  40. :palabra
  41. set "palabra = %~2"
  42. set "palabra ">nn.ini
  43. for /F "tokens=3" %%y IN (nn.ini) DO (echo %%y>ANSI%random%.ini)
  44. del nn.ini
  45. echo Transformacion completada
  46. exit /B
  47. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  48. :frase
  49. set "frase = %~2"
  50. set "frase ">nn.ini
  51. FOR /f "tokens=3*" %%a IN (nn.ini) DO (echo %%a %%b>ANSI%random%.ini)
  52. del nn.ini
  53. echo Transformacion completada
  54. exit /B
  55.  
PD:Repetí el código de este post:https://foro.elhacker.net/scripting/batchcomo_evitar_lectura_de_archivo_por_el_comando_type-t377736.0.html;msg1806853#msg1806853. :silbar:
Por que en el anterior post solo citaba el código.
    


« Última modificación: 9 Diciembre 2012, 21:37 pm por Segadorfelix » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
« Respuesta #1 en: 7 Diciembre 2012, 19:24 pm »

Podrías mejorar el código extendiendo su funcionalidad, "Uni to ANSI" y "ANSI to Uni"

Código:
CMD /U

Código:
CMD /?

saludos


En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
« Respuesta #2 en: 7 Diciembre 2012, 19:41 pm »

@EleKtro H@cker, Gracias de nuevo. ;D, No sabia, como pasar de ANSI a Unicode.
La próxima versión de MORF tendra un método para cifrar (y descifrar, gracias a lo de CMD /U, me ha servido mucho).
« Última modificación: 9 Diciembre 2012, 21:34 pm por Segadorfelix » En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
« Respuesta #3 en: 9 Diciembre 2012, 21:31 pm »

Listo, aquí esta la Versión 2.0, que ahora puede transformar de ANSI a Unicode, me base en el código de "a2u.bat"(pero solo la base, le quite partes innecesarias, agregue partes necesarias del código y simplifique otras).
Código
  1. @echo off
  2. Rem Morf v. 2.0
  3. Rem solo valido unicode, no unicode big endian
  4. Rem acepta caracteres especiales :D
  5. Rem script creado por segadorfelix
  6. REM Gracias EleKtro H@cker
  7. REM Unicode basado en a2u.bat bit.ly/RjDeCr
  8. Rem funciona por linea de comandos
  9. 
  10. set "text=" & set "palabra =" & set "frase =" & set "UNI=" & set "Fun="
  11. IF /I ["%~3"]==["-U"] ( set "UNI=yes" && set "ftre=Unidode" && goto Format ) else set "ftre=ANSI"
  12. :MORF
  13. IF /I ["%~1"]==["-T"] goto text
  14. IF /I ["%~1"]==["-F"] goto frase
  15. IF /I ["%~1"]==["-p"] goto palabra
  16. echo Este script transforma un texto en Unicode a Ansi
  17. echo Funcionamiento del script:
  18. echo morf -T "Ubicacion del text" Trasnfoma un texto completo a ANSI
  19. echo Ejemplo:
  20. echo morf -T "%userprofile%\Desktop\emoticonos.txt"
  21. echo morf -F "Frase" Trasnfoma una frase a ANSI
  22. echo Ejemplo:
  23. echo morf -F "õl á©illante"
  24. echo morf -P "Palabra" Trasnfoma una palabra a ANSI
  25. echo Ejemplo:
  26. echo morf -P "á©illante"
  27. echo Todas las conversiones se ponen en un archivo .ini
  28. echo con el nombre ANSI, junto con un numero al azar,
  29. echo exceptuando transformacion de texto.
  30. echo Para hacer un proceso inverso(ANSI a Unicode)ponga al final -U
  31. echo Ejemplo:
  32. echo morf -F "äl  ¸illante" -U Tranforma una frase a Unidode
  33. exit /B
  34. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  35. :text
  36. call:texto "%~2" "%HuecoDoss%"
  37. exit /B
  38. :texto
  39. set text=%~f1
  40. IF DEFINED UNI (call:funcion %text% %~2) else (type %text%>>%text%_%ftre%)
  41. echo Transformacion completada.
  42. Goto:EOF
  43. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  44. :palabra
  45. IF DEFINED UNI (CHCP 1252 >NUL)
  46. set "palabra = %~2"
  47. set "palabra ">nn.ini
  48. set "Result=%ftre%%random%.ini"
  49. set /A "hty=0"
  50. for /F "tokens=3" %%y IN (nn.ini) DO (echo %%y>%Result%)
  51. del nn.ini
  52. IF DEFINED UNI (goto qwerty)
  53. echo Transformacion completada
  54. exit /B
  55. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  56. :frase
  57. IF DEFINED UNI (CHCP 1252 >NUL)
  58. set "frase = %~2"
  59. set "frase ">nn.ini
  60. set "Result=%ftre%%random%.ini"
  61. set /A "hty=0"
  62. FOR /f "tokens=3*" %%a IN (nn.ini) DO (echo %%a %%b>%Result%)
  63. del nn.ini
  64. IF DEFINED UNI (goto qwerty)
  65. echo Transformacion completada
  66. exit /B
  67. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  68. :Format
  69. FOR /F "usebackq tokens=5" %%A IN (`CHCP`) DO (IF %%A==1252 (
  70. SET CMDsig=850) else (set CMDsig=%%A))
  71. set "Result="
  72. SET "HuecoDoss="
  73. SET "HuecoDoss=R%random%W.ini"
  74. CALL :MORF %*
  75. exit /B
  76. :Funcion
  77. CHCP 1252 >NUL
  78. (SET /P=ÿþ)<NUL>"%HuecoDoss%"
  79. CHCP %CMDsig% >NUL
  80. CMD /U /C TYPE "%~nx1" >> "%HuecoDoss%"
  81. REN "%~f2" "%~nx1_%ftre%"
  82. Goto:EOF
  83. :qwerty
  84. CALL :MORF -t "%Result%"
  85. DEL %Result%
  86. Goto:EOF
  87.  
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
« Respuesta #4 en: 9 Diciembre 2012, 21:45 pm »

Ahora vengo a decirte de nuevo:

Puedes mejorar su funcionalidad eliminando la necesidad de usar 3 parámetros, haciendo que el script detecte si se intenta convertir un archivo, o una palabra/frase.

PD: +1

Saludos
En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
« Respuesta #5 en: 10 Diciembre 2012, 00:03 am »

Halle una manera, seria expander la variable del archivo/frase/palabra.
Código
  1. IF ["%~t1"]==[""] (echo No es un archivo) else echo si es un archivo
El problema es si se quiere transformar una palabra/frase, que es igual al nombre de un archivo que esta en la carpeta de morf.
Ejemplo:existe el archivo §☼l, sin extension, se activa MORF para transformar una palabra, que seria §☼l, daría prioridad a el archivo.

¿Hay otro método?
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
« Respuesta #6 en: 10 Diciembre 2012, 00:32 am »

¿Hay otro método?

¿Quien sería tán retorcido de ir dejando archivos SIN extensión y llamados "§☼l"? :P,
Creo que con que compruebes si existe el archivo CON extensión sería suficiente:
Código:
IF exist "%~1" IF NOT "%~x1" EQU "" (Echo el archivo existe y tiene extension)
PD: Es una multi condicional

Saludos
« Última modificación: 10 Diciembre 2012, 00:35 am por EleKtro H@cker » En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [BATCH][Aporte]MORF:Transforma texto Unicode a ANSI
« Respuesta #7 en: 10 Diciembre 2012, 01:13 am »

Simplifique el código, uniendo el transformador de frases con el de palabras, mas el uso de solo 2 parametros.
Código
  1. @echo off
  2. Rem Morf V 2.5
  3. Rem solo valido unicode, no unicode big endian
  4. Rem acepta caracteres especiales :D
  5. Rem script creado por segadorfelix
  6. REM Gracias EleKtro H@cker
  7. REM Unicode basado en a2u.bat Code=bit.ly/RjDeCr
  8. Rem funciona por linea de comandos
  9. 
  10. set "text=" & set "palabra =" & set "frase =" & set "UNI=" & set "Fun="
  11. IF /I ["%~2"]==["-U"] ( set "UNI=yes" && set "ftre=Unicode" && goto Format ) else set "ftre=ANSI"
  12. :MORF
  13. IF exist "%~1" (IF NOT "%~x1" EQU "" (goto text)) else (IF NOT "%~1"=="" goto Fra_Pal)
  14. echo Este script transforma un texto en Unicode a Ansi y viceversa
  15. echo Funcionamiento del script:
  16. echo morf "Ubicacion del text" Trasnfoma un texto completo a ANSI
  17. echo Ejemplo:
  18. echo morf "%userprofile%\Desktop\emoticonos.txt"
  19. echo morf "Frase" Trasnfoma una frase a ANSI
  20. echo Ejemplo:
  21. echo morf "õl á©illante"
  22. echo morf "Palabra" Trasnfoma una palabra a ANSI
  23. echo Ejemplo:
  24. echo morf "á©illante"
  25. echo Todas las conversiones se ponen en un archivo .ini
  26. echo con el nombre ANSI/Unicode, junto con un numero al azar,
  27. echo exceptuando transformacion de texto.
  28. echo Para hacer un proceso inverso(ANSI a Unicode)ponga al final -U
  29. echo Ejemplo:
  30. echo morf "äl  ¸illante" -U Tranforma una frase a Unidode
  31. exit /B
  32. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  33. :text
  34. call:texto "%~1" "%HuecoDoss%"
  35. exit /B
  36. :texto
  37. set text=%~f1
  38. IF DEFINED UNI (call:funcion %text% %~2) else (type %text%>>%text%_%ftre%)
  39. echo Transformacion completada.
  40. Goto:EOF
  41. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  42. :Fra_Pal
  43. IF DEFINED UNI (CHCP 1252 >NUL)
  44. set "Fra_Pal = %~1"
  45. set "Fra_Pal ">nn.ini
  46. set "Result=%ftre%%random%.ini"
  47. set /A "hty=0"
  48. for /F "tokens=2*" %%y IN (nn.ini) DO (echo %%z>%Result%)
  49. del nn.ini
  50. IF DEFINED UNI (goto qwerty)
  51. echo Transformacion completada
  52. exit /B
  53. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  54. :Format
  55. FOR /F "usebackq tokens=5" %%A IN (`CHCP`) DO (IF %%A==1252 (
  56. SET CMDsig=850) else (set CMDsig=%%A))
  57. set "Result="
  58. SET "HuecoDoss="
  59. SET "HuecoDoss=R%random%W.ini"
  60. CALL :MORF %*
  61. exit /B
  62. :Funcion
  63. CHCP 1252 >NUL
  64. (SET /P=ÿþ)<NUL>"%HuecoDoss%"
  65. CHCP %CMDsig% >NUL
  66. CMD /U /C TYPE "%~nx1" >> "%HuecoDoss%"
  67. REN "%~f2" "%~nx1_%ftre%"
  68. Goto:EOF
  69. :qwerty
  70. CALL :MORF "%Result%"
  71. DEL %Result%
  72. ren %Result%_Unicode %Result%
  73. Goto:EOF
  74.  
« Última modificación: 10 Diciembre 2012, 01:48 am por Segadorfelix » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines