[APORTE] [BATCH] Acentos en los programas Batch - La mejor solución

Iniciado por Príncipe_Azul, 5 Agosto 2013, 09:55 AM

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

Príncipe_Azul

Acentos en los programas Batch - La mejor solución

Buenas, Soy Príncipe_Azul y hoy quiero informarles, ayudarles y mostrarles lo que he descubierto.
En la programación Batch lamentablemente no se pueden crear, editar o borrar archivos que contengan acentos, esto probablemente se debe a la codificación que utiliza la programación Batch.
Hasta hace algún tiempo no había encontrado forma de poder utilizar los acentos en Batch porque pensaba que eso jamás sería posible... Pero hace unos días pensé y probé un método impresionante diría yo, ya que a pesar de ser algo muy simple se pueden usar acentos en los programas en Batch, ya sean en la ayuda del mismo o en la creación, modificación y/o eliminación de arhivos y/o nombres de ellos.
Este magnífico truco lo he descubierto porque cuando antes trabajaba con Batch veía en la ayuda del mismo, palabras que contenían acentos ´´´´ esto me llamó la atención y me dio una esperanza a que ahora lo que he descubierto haya sido la perfecta solución!! así que me puse a jugar un poco con Batch y fuí haciendo pruebas y pruebas, hasta que pum! lo logré y gracias a Dios no me ha llevado tiempo, solo algunos minutos.
Yo Príncipe_Azul como descubridor de esto, no soy un creador de esta posibilidad, sino una persona con buena inteligencia y lógica en su pensar, es algo simple, si en la ayuda de Batch aparecían acentos, entónces si existe esa posibilidad, de hecho Bill Gates la utiliza o por lo menos eso creo.
Este gran descubrimiento será la grandísima ayuda a todas las personas que siempre han tenido problemas con los acentos en sus programas, archivos y carpetas.
Yo a medida que fui aprendiendo sobre programación Batch había leído 2 o 3 tutoriales que me sirvieron bastante, pero en la ayuda de esos tutoriales, como también en Foros y en págians webs he leído que no se podían utilizar acentos en Batch, eso me desilucionaba un poco con el lenguaje, porque cláro no disponía de algo tan simple como la posibilidad de utilizar bien la ortografía en la programación Batch.
En realidad no estoy seguro de que el método que utilice exista en otro lugar (página/foro), osea que otra persona haya descubierto lo mismo que yo, pero esta forma que utilizo para poner acentos, jamás la he leído en ningún lado.
Bueno ya terminando con mi explicación te voy a pedir que si posteas en algún Foro o publicás esta forma de poner acentos en los programas Batch/archivos/carpetas digas que Príncipe_Azul ha sido la persona que ha descubierto esto, quizás suene una exageración, pero la realidad es que uno tiene derecho a que por lo menos aparezca en algún lado en el cuál publiquen algo sobre lo que esa persona haya creado o descubierto, solo pido que digas que Príncipe_Azul fue el que descubrió esta posibilidad, ya que me he tomado el tiempo y trabajo en crear esta explicación y más abajo del texto escribiré la ayuda y explicación de como utilizar los acentos en Batch!! Gracias por tu colaboración!

Primero y antes de que empiece a escribir el "Truco" de como utilizar los acentos en Batch, voy a poner abajo lo que  se puede hacer en Batch sin usar acentos. Luego de eso explicaré como utilizarlos, esto lo hago para que se vea la diferencia y tengas en cuenta lo que no se podía hacer en Batch y aplicando el truco que he descubierto verás como ahora si podrás usar los acentos!!

Para borrar un archivo utilizá las comillas "" siempre y cuando sean necesarias, te harán mucha falta, por ejemplo puedes entrecomillar un nombre de directorio/archivo que tiene más de 6 letras y/o espacios, esto evitará que se generen fallas al borrar/editar/agregar un directorio/archivo.
NOTA: No olvides que en el ejemplo utilizaré dos opciones que son las siguientes:
/S Elimina los archivos de adentro y las subcarpetas también. Si hay archivos dentro y no se pone esta opción no se podrá eliminar la carpeta.
/Q Modo silencioso (Quiere decir que no te pedirá confirmación para borrar la carpeta).

Ejemplos:
Código (dos) [Seleccionar]
rmdir /S /Q "D:\Carpeta de ejemplo"
rmdir /S /Q "D:\CarpetaDeEjemplo"
rd /S /Q "D:\Carpeta de ejemplo"
rd /S /Q "D:\CarpetaDeEjemplo"


Ahora pondré el comando para borrar archivos y también la ayuda sobre eso:
/P Pide confirmación en cada caso.
/F Modo force. Borra incluso los archivos de solo lectura.
/S Borra también los subdirectorios.
/Q Modo silencioso. No pide confirmación en ningún caso.

Ejemplos:
Código (dos) [Seleccionar]
del /F /Q "D:\ProbarBorrado.txt"
del /P "D:\Probar Borrado.txt"
erase /F /Q "D:\ProbarBorrado.txt"
erase /P "D:\Probar Borrado.txt"


Comando para renombrar archivos y carpetas:
Código (dos) [Seleccionar]
ren "D:\Archivo.txt" "Archivo renombrado.txt"
rename "D:\Archivo.txt" "Archivo renombrado.txt"
ren "D:\Nueva carpeta" "Carpetita renombrada"
rename "D:\Nueva carpeta" "Carpetita renombrada"


Comandos para crear archivos:
Yo recomiendo usar mejor el comando echo para crear archivos
Ejemplo
Código (dos) [Seleccionar]
echo Texto que llevará el archivo > "D:\Archivo.extensión"
Ejemplos:
Código (dos) [Seleccionar]
echo Este texto ira en el archivo Texto.txt y en la ruta D:\ > "D:\Texto.txt"

Código (dos) [Seleccionar]
copy con "D:\Archivo de texto.txt"
Luego de dar ENTER tendrás que escribir lo que desees dentro del archivo y para finalizar pesioná la tecla F6 y luego ENTER nuevamente.

Comandos para crear directorios:
Código (dos) [Seleccionar]
md "D:\Nombre de la carpeta"
mkdir "D:\Nombre de la carpeta"


Bueno ahora viene la mejor parte... los acentos ´´´´´´´´
Antes quiero dar una breve explicación sobre ellos, los acentos que yo utilizo y que vos vas a utilizar, no son más que símbolos del sistema, osea son símbolos que cuando la consola de comandos (CMD) ejecuta tu programa para que comience a funcionar, ahí los codifica a los acentos de las vocables por supuesto.
Abajo dejo todo el listado de acentos, recordá que también tenés la posibilidad de usar vocables con acentos ya sean mayúsculas o minúsculas, letras ñ y Ñ y también el signo de interrogación de apertura.
En la tabla de abajo primero está la letra con acento y a la derecha luego del signo = está el símbolo que hace posible que se puedan usar los acentos en los programas en Batch.
NOTA: Abajo existen 2 símbolos de los acentos que no se ven porque son espacios especiales, si deseas usarlos, simplemente copialos y pegalos en tu editor de lenguajes de programación en la parte que desees usarlos.

Letras y Acentos:

á =  
Á = µ
é = ,
É = 
í = ¡
Í = Ö
ó = ¢
Ó = à
ú = £
Ú = é
ñ = ¤
Ñ = ¥
´ = ï
¿ = ¨


Ahora dejaré ejemplos con palabras que llevan acentos:

Código (dos) [Seleccionar]
mkdir "D:\Archivos Batch con acentos"
mkdir "D:\Archivos Batch con acentos\Estas son las vocales min£sculas   , ¡ ¢ £"
mkdir "D:\Archivos Batch con acentos\Estas son las vocales may£sculas µ  ¡ Ö é"
echo Este archivo lleva acentos en su nombre > "D:\Archivos Batch con acentos\acentos en Min£sculas  , ¡ ¢ £.txt"
echo Este archivo lleva acentos en su nombre > "D:\Archivos Batch con acentos\ACENTOS en May£sculas µ  ¡ Ö é.txt"
exit


Te recomiendo que copies todo el código desde arriba donde he puesto los acentos de ejemplos y pegalos en un editor de lenguajes de programación como ser el NotePad++ que es un excelente programa, una vez que pegues esas 6 líneas guarda ese archivo con el nombre que quieras, puedes ponerle por ejemplo Prueba.bat o sino Prueba.cmd
Al archivo puedes crearlo en cualquier directorio y luego ejecutalo, abrílo y comprobá que habrá acentos en los nombres de los archivos y carpetas que el programa creará, estos archivos estarán en tu disco D:\ Si no dispones de otro disco o tu otro disco no tiene la etiqueta de nombre D:\ entónces cambiale el D:\ por el nombre a tu disco, en los ejemplos que he puesto arriba ahí deberás cambiar el nombre del disco duro.
Repito esas 6 líneas que estan arriba son las que debes copiar y guardarlas en un archivo que tenga cualquier nombre y que este en el directorio que quieras, el archivo debe estar en formato .bat o .cmd
NOTA: Si utilizás el directorio C:\ entónces abrí el programa Batch que creaste pero desde Administrador, si no sabes como hacerlo, sigue estos pasos:
Selecioná el archivo Batch con un clic izquierdo, luego clic derecho para que se abra una ventana con opciones y ahí seleccionás la opción "Ejecutar como Administrador" y Windows te preguntará si deseas darle acceso a ese archivo y pulsá el botón SI y listo!! Ahora podrás ver tus archivos con acentos que estan en el directorio "D:\Archivos Batch con acentos" (o en el disco que especificaste), se creará en el disco D:\ una carpeta de nombre "Archivos Batch con acentos" ahí adentro estarán tus archivos con acentos!!!!!
Eso es todo, a disfrutar de los acentos en Batch!!! :D : )

Autor: Príncipe_Azul
Foro de Ayuda de Programación General, IRC y mIRC Scripting: 

Meine programmen

Si en el mapa de caracteres escoges como fuente "Terminal", te aparecen te aparacen todos los simbolos posibles. Simplemente con seleccionar el simbolo que buscas y copiarlo ya está. Además, con buscar un poco, ya hay otros post que hablan del tema.
http://foro.elhacker.net/scripting/caracteres_especiales_en_batch_espero_les_sirva-t270247.0.html
Por cierto, si no me equivoco, el simbolo de la á creo recordar que al copiarlo de un post no te servia, por eso es mejor usar la à (...) si vas a compartir el codigo en el foro.
REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!


Eleкtro

#2
Cita de: Principe_Azul en  5 Agosto 2013, 09:55 AM
Yo Príncipe_Azul como descubridor de esto

...

voy a pedir que si posteas en algún Foro o publicás esta forma de poner acentos en los programas Batch/archivos/carpetas digas que Príncipe_Azul ha sido la persona que ha descubierto esto

Amigo, siento decirte que no has descubierto nada... todo acerca de Batch está documentado en cualquier sitio, no has buscado bien.

Deberías leer sobre el comando CHCP, el cual sirve para usar una codificación de página distinta.

Te lo voy a explicar con un ejemplo:

Código (dos) [Seleccionar]
@Echo OFF

:: Seteamos la codificación actual al latino,
:: para poder usar los acentos latinos.
CHCP 1252 1>NUL
MKDIR "Carpeta con ácèntös"

:: Volvemos a la codificación por defecto,
:: para mostrar acentos en la CMD (mostrar, NO usar).
CHCP 850 1>NUL
Dir /B ".\Carpeta con *"

:: Volvemos de nuevo a la codificación latina,
:: para poder acceder a la carpeta escribiento acentos.
CHCP 1252 1>NUL
CD /D "Carpeta con ácèntös"

:: Volvemos de nuevo a la codificación por defecto,
:: para mostrar los acentos en la CMD corréctamente (mostrar, NO usar).
CHCP 850 1>NUL
Echo "%CD%"

Pause&Exit



Output:
Carpeta con ácèntös
"C:\Users\Administrador\Desktop\Carpeta con ácèntös"
Presione una tecla para continuar . . .



PD: Mucho más práctico y eficaz que estar convirtiendo cada caracter manuálmente, ¿Verdad?

De todas formas si una persona pretende usar algun otro acento de los que faltan en tus indicaciones como los invertidos (àèìòùÀÈÌÒÙ) u otros caracteres como la C trencada española (çÇ) puede usar el comando Copy con de esta manera:

Código (dos) [Seleccionar]
copy con ".\Chars.txt"

...Y seguídamente escribir los caracteres en la CMD para guardar la conversión en el archivo de texto.

No hay ningún "truco" o caracteristica especial que poder descubrir acerca de Batch, es pequeño, fácil de aprender, y todos los secretos indocumentados están descubiertos.

Saludos






Por cierto, lee mi firma porfavor, es una norma del foro.









Príncipe_Azul

Bueno en realidad yo creía que esa era una posibilidad ya que hay demasiados tutoriales, páginas webs y foros en los que dicen que no se pueden usar acentos en batch, pero bueno habrá que actualizar eso.
De todas maneras a mi me ha servido lo que he descubierto ya que los acentos si sirven tanto para nombres de archivos y carpetas, ahora que exista una mejor solución más fácil y rapida, bueno eso ya es otro tema.
Solo quería aportar algo porque había pensado que en batch no se podían usar acentos y mucha gente he leído que no lo podía hacer.
Pero me he alejado un poco de batch ya que pasé a otro lenguaje de programación que es más fuerte y es mejor, pero con batch he aprendido un poco.
Me gusta que posteen EleKtro H@cker y Meine programmen y me informen que ya hay una posibilidad o varias de hacer esto posible (los acentos), eso esta bien :D
Gracias EleKtro H@cker por corregir mi post.
La verdad esto no me desiluciona, porque funcionó lo que probé, si hubiese pasado lo contrario ahí quizás si me hubiese desilucionado un poco, pero mi pensar es que en el mundo de la programación todo es posible.
Bueno me despido gente, un saludo y buena suerte!! :)
Foro de Ayuda de Programación General, IRC y mIRC Scripting: 

Eleкtro

#4
No es para desilusionarse, la intención de aportar y compartir conocimiento es lo que importa, solo que presuponer que fuiste el descubridor de una cosa ha sido algo muy ingenuo...

Cuando alguien empieza a programar en un lenguaje que desconoce a veces acaba descubriendo cosas por pura suerte ...pero eso no significa que sea un descubrimiento global xD, sinó personal, por falta de conocimientos.

...Pero todos hemos sido ingenuos en alguna ocasión de nuestras vidas, y quien diga que no, miente.

Saludos








cyberalejo17

Les comparto mi experiencia:
Copiar y pechar el caracter de sitios externos (páginas web, otros bat) no me funciona, así que lo que hago es abrir un cmd, y escribir:


echo áó >> miscript.bat


Es decir, hago un echo de las letras tildadas o similares (╚╔ ╩ ╦ ╠ ═) quedando en la última linea del script gracias al >>. Sólo me resta copiarlas y pegarlas donde necesite.