Crear archivo bat con otro bat

Estimados expertos de este foro, saludos.

Me gustaría saber como se puede crear un archivo bat con otro bat que muestre cierto resultado predefinido, por ejemplo:

Basado en el apoyo del experto gggiral he realizado un archivo bat que me genera letras mayúsculas de tamaño apreciable para presentación de un programa bat.

He puesto el siguiente código:

@echo off
Cls
Color 17
F:
Echo.
Echo²²²²²²
Echo²²
Echo²²²²
Echo²²
Echo²²
Echo.
E:
Echo.
Echo²²²²²²
Echo²²
Echo²²²²
Echo²²
Echo²²²²²²
Echo.
L:
E:
Echo.
Echo²²
Echo²²
Echo²²
Echo²²
Echo²²²²²²
Echo.
I:
E:
Echo.
Echo²²
Echo²²
Echo²²
Echo²²
Echo²²
Echo.
X:
E:
Echo.
Echo²²²²
Echo²²²²
Echo²²
Echo²²²²
Echo²²²²
Echo.
Pause

Por lo tanto, hacer que en tiempo de ejecución pregunte que letra desea ver; si se le contesta la E entonces se crea un archivo bat con el código de la letra E y se pueda observar al ejecutarlo.

Si se le contesta la F igualmente se crea otro archivo bat que el ejecutarlo se observara la F

1 Respuesta

Respuesta
1
@echo off
Cls
Color 17
> letraE.bat echo @echo off
>> letraE.bat echo echo °°°°°°°
>> letraE.bat echo echo °°
>> letraE.bat echo echo °°°°
>> letraE.bat echo echo °°
>> letraE.bat echo echo °°°°°°°
Pause

Mira a ver si esto te vale. Como siempre es posible que el editor de la página cambie alguna cosilla. Esto generaría un letraE.bat que al ejecutarlo sacaría una letra E grandota. Lo que no veo claro es como superponerlos. No sé si estás habituado a poner las redirecciones al principio. Por si no lo estás la primera sería equivalente a "echo @echo off>letraE.bat" y así sucesivamente. Queda más legible de esta manera, creo.

Al final cogí mi diseño en vez del tuyo. Con el tuyo sería:

@echo off
Cls
Color 17
> letraE.bat echo @echo off
>> letraE.bat echo echo²²²²²²
>> letraE.bat echo echo²²
>> letraE.bat echo echo²²²²
>> letraE.bat echo echo²²
>> letraE.bat echo echo²²²²²²
Pause

Al volver a leer lo que pedías me he dado cuenta de que querías algo más. Tal vez algo así:

@echo off
:Inicio
Cls
Color 17
set /p letra=Escribe la letra (E, F, L, I):
goto :letra%letra%
:LetraE
> letra.bat echo @echo off
>> letra.bat echo echo²²²²²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²²²²²
call letra
goto :fin
:LetraF
> letra.bat echo @echo off
>> letra.bat echo echo²²²²²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²
call letra
goto :fin
:LetraI
> letra.bat echo @echo off
>> letra.bat echo echo²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²
call letra
goto :fin
:LetraL
> letra.bat echo @echo off
>> letra.bat echo echo²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²²²²²
call letra
goto :fin
:fin
set /p mas=¨Mas letras (S/N)?
if "%mas%" == "S" goto :inicio
if "%mas%" == "s" goto :inicio
Pause

Si quieres guardas los bat por separado en lugar de usar siempre el mismo (letra.bat) los puedes nombrar de forma diferente.

En esta ocasión el editor ha eliminado los espacios entre el "echo" y el primer "²" y esto hace que no funcione. Restablécelos manualmente antes de ejecutarlo.

He colocado en base a lo aprendido por lo que me envías, los siguiente

>>letraE.bat echo Pause

para poder pausar le ejecución y mirar la letra, así también puedo enviar el cls, lo de los colores seria necesario poder usar otro código para seleccionar además color.

Lo que mencionas de superponerlos, no comprendo pero si existe una para generar solo la letra es lo que hace el código que me envía, si se refiere a que, si requiero generar una palabra por ejemplo FELIX, o BIENVENIDO, o más una frase corta BIENVENIDO AL EVAD en otro archivo bat, voy a tomarme otro tiempo para subir el alfabeto completo basado en tu apoyo y abro un nuevo tema para la palabra o frase.

Regresando a lo mismo, he nombrado a cada letra, solo he aumentado lo mencionado al pause: (Muestro un fragmento..)

set /p letra=Escribe la letra (E, F, L, I):
goto :letra%letra%
:LetraE
> letraE.bat echo @echo off
>> letraE.bat echo echo ²²²²²²
>> letraE.bat echo echo ²²
>> letraE.bat echo echo ²²²²
>> letraE.bat echo echo ²²
>> letraE.bat echo echo ²²²²²²
>> letraE.bat echo pause
call letra
goto :fin
:LetraF

pero cuando elijo la letra y le doy a enter me sale esto

Aunque si crea el archivo correctamente. Que podrá ser???

Gracias

Disculpa que vuelva a poner el tema con este punto ante las letras, creo conveniente que antes que cree el archivo bat, primero me muestre la letra y luego de aceptar ejecute la acción de enviar el código al crear el nuevo archivo bat.

Por si todavía no has detectado el problema que comentabas en tu mensaje de las 8 de ayer, se trata de que al BAT generado le llamas "letraE.bat" pero lo invocas (comando "call") llamándolo "letra" en vez de "letraE". Respecto a los colores el parámetro del comando color controla con el primer dígito el color de fondo y con el segundo el de primer plano. Puedes ver los códigos y el significado en:

http://www.computerhope.com/color.htm 

Por último si interpreto bien tu último mensaje, que muestre primero la letra "grande", pida aceptación y luego se cree el bat si se ha aceptado, sería algo así (solo para dos letras):

@echo off
:Inicio
Cls
Color 17
set /p letra=Escribe la letra (E, F):
goto :letra%letra%
:LetraE
Echo²²²²²²
Echo²²
Echo²²²²
Echo²²
Echo²²²²²²
set /p crear=¨Se quiere crear el bat (S/N)?
if "%crear%" == "N" goto :fin
if "%crear%" == "n" goto :fin
> letra.bat echo @echo off
>> letra.bat echo echo²²²²²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²²²²²
>> letra.bat echo pause
call letra
goto :fin
:LetraF
Echo²²²²²²
Echo²²
Echo²²²²
Echo²²
Echo²²
set /p crear=¨Se quiere crear el bat (S/N)?
if "%crear%" == "N" goto :fin
if "%crear%" == "n" goto :fin
> letra.bat echo @echo off
>> letra.bat echo echo²²²²²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²²²
>> letra.bat echo echo²²
>> letra.bat echo echo²²
>> letra.bat echo pause
call letra
:fin
set /p mas=¨Mas letras (S/N)?
if "%mas%" == "S" goto :inicio
if "%mas%" == "s" goto :inicio
Pause

¡Gracias! Es lo que requería, está excelente, ya mismo termino el alfabeto y podré subir otro tema para lo de formar palabras. He encontrado el el código ^ permite unir al frente los que esta en la siguiente línea o grupo de líneas ejemplo si tengo:

Echo 78 ^

Echo 26 ^

El resultado es: echo 78 echo 26

En serie,... esto podría servir, lo menciono para ir probando

Ante el tema planteado aquí lo declaro solucionado y te agradezco mucho por ello. Hasta la próxima.

He encontrado una forma de unir las letras, un poco chapucera pero funciona. Este es el código:

@echo off
Setlocal EnableDelayedExpansion
Cls
Color 17
set /a cont = 0
set rot2=
set rot1=
set rot3=
set rot4=
set rot5=
set cE=²²²²²² ²²     ²²²²   ²²     ²²²²²²ÿ
set cF=²²²²²² ²²     ²²²²   ²²     ²²    ÿ
set /p pal=Escribe la palabra (de menos de 10 letras):
:cont
set l=!pal:~%cont%,1!
if "%l%" == "" goto :fin
set /a cont += 1
set rot1=!rot1! !c%l%:~0,7!
set rot2=!rot2! !c%l%:~7,7!
set rot3=!rot3! !c%l%:~14,7!
set rot4=!rot4! !c%l%:~21,7!
set rot5=!rot5! !c%l%:~28,7!
goto :cont
:fin
set /a ncar=cont*8
Echo ! Rot1:~0,%ncar%!
Echo ! Rot2:~0,%ncar%!
Echo ! Rot3:~0,%ncar%!
Echo ! Rot4:~0,%ncar%!
Echo ! Rot5:~0,%ncar%!
Pause

Por supuesto habrá que ver lo que hace el editor de la página. Tiene de bueno que "aplana" los códigos de las letras (a las que he llamado cE, cF con la "c" de carácter por si se quieren diseñar números).

En este de prueba las "palabras" solo pueden tener las letras E y F. El carácter "ÿ" representa al ASCII 255. Es un espacio pero tiene la ventaja de que el bat no lo trata como espacio y no lo elimina la formar la variable rot5.

Pruébalo y me dices que te parece.

He pasado el código, he separado los códigos que me envías por lo del editor, así:

Nota1:

set cE= ²²²²²² ²² ²²²² ²² ²²²²²² ÿ
set cF= ²²²²²² ²² ²²²² ²² ²² ÿ

lo ejecuto pero me sale así:

¿Qué será?

Nota 1: Observa que pegando directamente, no se separa las letras del código

Nota 2: Si quiero agregar más letras al código, ¿lo hago a partir de donde? Sera de

 set cF= ²²²²²² ²² ²²²² ²² ²² ÿ        ???

Gracias por mantener el tema.

Corrección!!

Nota 1: Observa que pegando directamente, no se unen las letras del código.

A propósito, hay alguna forma de editar el comentario mensaje dentro de un tiempo de hacer click a ENVIAR para evitar que el mensaje lleve errores??

El problema es que el editor ha incluido un espacio entre la "!" y la "R" de cada "rot" (les he llamado así por "rótulo") además de poner en mayúsculas esa "r" y la del "echo". Y no pongas espacios entre el igual y el primer² en ninguno de los "set" de los caracteres. Y no he conseguido lo que sugieres, editar el "snippet" de manera que no lleve errores. Les pasé hace algún tiempo (exactamente el 30 de octubre) el problema a los responsables de la página y me han dicho que lo han comprobado y lo están mirando, pero no parece que lo hayan resuelto todavía. He incluido algunas letras más, aunque no estoy muy satisfecho con el diseño de las letras (no soy muy bueno en esas cosas) pero puede servir de prueba. Así es como lo tengo ahora:

@echo off
Setlocal EnableDelayedExpansion
Cls
Color 17
set /a cont = 0
set rot2=
set rot1=
set rot3=
set rot4=
set rot5=
set cA= ²²²²  ²²  ²² ²²²²²² ²²  ²² ²²  ²²ÿ
set cB=²²²²²  ²²  ²² ²²²²²² ²²  ²² ²²²²² ÿ
set cC=²²²²²² ²²     ²²     ²²     ²²²²²²ÿ
set cD=²²²²²  ²²  ²² ²²  ²² ²²  ²² ²²²²² ÿ
set cE=²²²²²² ²²     ²²²²   ²²     ²²²²²²ÿ
set cF=²²²²²² ²²     ²²²²   ²²     ²²    ÿ
set cG=²²²²²² ²²     ²² ²²² ²²  ²² ²²²²²²ÿ
set cH=²²  ²² ²²  ²² ²²²²²² ²²  ²² ²²  ²²ÿ
set cI=  ²²     ²²     ²²     ²²     ²²  ÿ
set cJ=    ²²     ²²     ²² ²²  ²²   ²²²²ÿ
set cK=²²  ²² ²² ²²  ²²²²   ²² ²²  ²²  ²²ÿ
set cL=²²     ²²     ²²     ²²     ²²²²²²ÿ
set /p pal=Escribe la palabra (de menos de 10 letras):
:cont
set l=!pal:~%cont%,1!
if "%l%" == "" goto :fin
set /a cont += 1
set rot1=!rot1! !c%l%:~0,7!
set rot2=!rot2! !c%l%:~7,7!
set rot3=!rot3! !c%l%:~14,7!
set rot4=!rot4! !c%l%:~21,7!
set rot5=!rot5! !c%l%:~28,7!
goto :cont
:fin
set /a ncar=cont*8
Echo ! Rot1:~0,%ncar%!
Echo ! Rot2:~0,%ncar%!
Echo ! Rot3:~0,%ncar%!
Echo ! Rot4:~0,%ncar%!
Echo ! Rot5:~0,%ncar%!
Pause

No olvides eliminar el espacio que seguro que introduce entre la "!" y cada uno de los "rot" en los cinco "echo" finales.

Que genial, pero como lo has diseñado solo llega hasta la letra L, todavía no le pillo el sentido para completar el resto de letras.

cuando ejecuto solo hasta 9 letras escribe bien con 10 no bien miralo.

con 9

con 10

Con respecto a lo inicial, con el codigo que me has apoyado he completado el alfabeto, te lo pongo aquí.

@echo off
:Inicio
Cls
Color 17
echo.
set /p letra=Escribe la letra que desees ( ):
goto :letra%letra%
:LetraA
> letraA.bat echo @echo off
>> letraA.bat echo echo  ²²²²²
>> letraA.bat echo echo ²²   ²²
>> letraA.bat echo echo ²²²²²²²
>> letraA.bat echo echo ²²   ²²
>> letraA.bat echo echo ²²   ²²
>> letraA.bat echo pause
call letraA
goto :fin
:LetraB
> letraB.bat echo @echo off
>> letraB.bat echo echo ²²²²²²²
>> letraB.bat echo echo ²²   ²²
>> letraB.bat echo echo ²²²²²²
>> letraB.bat echo echo ²²   ²²
>> letraB.bat echo echo ²²²²²²²
>> letraB.bat echo pause
call letraB
goto :fin
:LetraC
> letraC.bat echo @echo off
>> letraC.bat echo echo ²²²²²²
>> letraC.bat echo echo ²²
>> letraC.bat echo echo ²²
>> letraC.bat echo echo ²²
>> letraC.bat echo echo ²²²²²²
>> letraC.bat echo pause
call letraC
goto :fin
:LetraD
> letraD.bat echo @echo off
>> letraD.bat echo echo ²²²²²
>> letraD.bat echo echo ²²   ²²
>> letraD.bat echo echo ²²    ²²
>> letraD.bat echo echo ²²   ²²
>> letraD.bat echo echo ²²²²²
>> letraD.bat echo pause
call letraD
goto :fin
:LetraE
> letraE.bat echo @echo off
>> letraE.bat echo echo ²²²²²
>> letraE.bat echo echo ²²
>> letraE.bat echo echo ²²²²
>> letraE.bat echo echo ²²
>> letraE.bat echo echo ²²²²²
>> letraE.bat echo pause
call letraE
goto :fin
:LetraF
echo.
> letraF.bat echo @echo off
>> letraF.bat echo echo ²²²²²²
>> letraF.bat echo echo ²²
>> letraF.bat echo echo ²²²²
>> letraF.bat echo echo ²²
>> letraF.bat echo echo ²²
>> letraF.bat echo pause
call letraF
goto :fin
:LetraG
> letraG.bat echo @echo off
>> letraG.bat echo echo ²²²²²²
>> letraG.bat echo echo ²²
>> letraG.bat echo echo ²² ²²²
>> letraG.bat echo echo ²²  ²²
>> letraG.bat echo echo ²²²²²²
>> letraG.bat echo pause
call letraG
goto :fin
:LetraH
> letraH.bat echo @echo off
>> letraH.bat echo echo ²²   ²²
>> letraH.bat echo echo ²²   ²²
>> letraH.bat echo echo ²²²²²²²
>> letraH.bat echo echo ²²   ²²
>> letraH.bat echo echo ²²   ²²
>> letraH.bat echo pause
call letraH
goto :fin
:LetraI
> letraI.bat echo @echo off
>> letraI.bat echo echo ²²
>> letraI.bat echo echo ²²
>> letraI.bat echo echo ²²
>> letraI.bat echo echo ²²
>> letraI.bat echo echo ²²
>> letraI.bat echo pause
call letraI
goto :fin
:LetraJ
> letraJ.bat echo @echo off
>> letraJ.bat echo echo    ²²²²
>> letraJ.bat echo echo     ²²
>> letraJ.bat echo echo     ²²
>> letraJ.bat echo echo ²²  ²²
>> letraJ.bat echo echo ²²²²²²
>> letraJ.bat echo pause
call letraJ
goto :fin
:LetraK
> letraK.bat echo @echo off
>> letraK.bat echo echo ²²   ²²
>> letraK.bat echo echo ²² ²²
>> letraK.bat echo echo ²²²²
>> letraK.bat echo echo ²² ²²
>> letraK.bat echo echo ²²   ²²
>> letraK.bat echo pause
call letraK
goto :fin
:LetraL
> letraL.bat echo @echo off
>> letraL.bat echo echo ²²
>> letraL.bat echo echo ²²
>> letraL.bat echo echo ²²
>> letraL.bat echo echo ²²
>> letraL.bat echo echo ²²²²²²
>> letraL.bat echo pause
call letraL
goto :fin
:LetraM
> letraM.bat echo @echo off
>> letraM.bat echo echo    ²     ²
>> letraM.bat echo echo    ²²² ²²²
>> letraM.bat echo echo    ²² ² ²²
>> letraM.bat echo echo    ²²   ²²
>> letraM.bat echo echo    ²²   ²²
>> letraM.bat echo pause
call letraM
goto :fin
:LetraN
> letraN.bat echo @echo off
>> letraN.bat echo echo    ²²   ²²
>> letraN.bat echo echo    ²²²  ²²
>> letraN.bat echo echo    ²² ² ²²
>> letraN.bat echo echo    ²²  ²²²
>> letraN.bat echo echo    ²²   ²²
>> letraN.bat echo pause
call letraN
goto :fin
:LetraO
> letraO.bat echo @echo off
>> letraO.bat echo echo ²²²²²²²
>> letraO.bat echo echo ²²   ²²
>> letraO.bat echo echo ²²   ²²
>> letraO.bat echo echo ²²   ²²
>> letraO.bat echo echo ²²²²²²²
>> letraO.bat echo pause
call letraO
goto :fin
:LetraP
> letraP.bat echo @echo off
>> letraP.bat echo echo ²²²²²²
>> letraP.bat echo echo ²²   ²²
>> letraP.bat echo echo ²²²²²²
>> letraP.bat echo echo ²²   
>> letraP.bat echo echo ²²   
>> letraP.bat echo pause
call letraP
goto :fin
:LetraQ
> letraQ.bat echo @echo off
>> letraQ.bat echo echo ²²²²²²²
>> letraQ.bat echo echo ²²   ²²
>> letraQ.bat echo echo ²²   ²²
>> letraQ.bat echo echo ²² ² ²²
>> letraQ.bat echo echo ²²²²²²²
>> letraQ.bat echo echo       ²²
>> letraQ.bat echo pause
call letraQ
goto :fin
:LetraR
> letraR.bat echo @echo off
>> letraR.bat echo echo ²²²²²²
>> letraR.bat echo echo ²²   ²²
>> letraR.bat echo echo ²²²²²²²
>> letraR.bat echo echo ²²   ²
>> letraR.bat echo echo ²²    ²
>> letraR.bat echo pause
call letraR
goto :fin
:LetraS
> letraS.bat echo @echo off
>> letraS.bat echo echo ²²²²²²²
>> letraS.bat echo echo ²²   
>> letraS.bat echo echo ²²²²²²²
>> letraS.bat echo echo      ²²
>> letraS.bat echo echo ²²²²²²²
>> letraS.bat echo pause
call letraS
goto :fin
:LetraT
> letraT.bat echo @echo off
>> letraT.bat echo echo ²²²²²²
>> letraT.bat echo echo   ²²
>> letraT.bat echo echo   ²²
>> letraT.bat echo echo   ²²
>> letraT.bat echo echo   ²²
>> letraT.bat echo pause
call letraT
goto :fin
:LetraU
> letraU.bat echo @echo off
>> letraU.bat echo echo ²²   ²²
>> letraU.bat echo echo ²²   ²²
>> letraU.bat echo echo ²²   ²²
>> letraU.bat echo echo ²²   ²²
>> letraU.bat echo echo  ²²²²²
>> letraU.bat echo pause
call letraU
goto :fin
:LetraV
> letraV.bat echo @echo off
>> letraV.bat echo echo ²    ²
>> letraV.bat echo echo ²    ²
>> letraV.bat echo echo ²    ²
>> letraV.bat echo echo  ²  ² 
>> letraV.bat echo echo   ²²
>> letraV.bat echo pause
call letraV
goto :fin
:LetraW
> letraW.bat echo @echo off
>> letraW.bat echo echo ²²       ²²
>> letraW.bat echo echo ²²       ²²
>> letraW.bat echo echo ²²   ²   ²²
>> letraW.bat echo echo  ²  ² ²  ² 
>> letraW.bat echo echo   ²²   ²²
>> letraW.bat echo pause
call letraW
goto :fin
:LetraX
> letraX.bat echo @echo off
>> letraX.bat echo echo     ²²      ²²
>> letraX.bat echo echo       ²²  ²²
>> letraX.bat echo echo         ²²
>> letraX.bat echo echo       ²²  ²²
>> letraX.bat echo echo     ²²      ²²
>> letraX.bat echo pause
call letraX
goto :fin
:LetraY
> letraY.bat echo @echo off
>> letraY.bat echo echo     ²²      ²²
>> letraY.bat echo echo       ²²  ²²
>> letraY.bat echo echo         ²²
>> letraY.bat echo echo         ²²
>> letraY.bat echo echo         ²²
>> letraY.bat echo pause
call letraY
goto :fin
:LetraZ
> letraZ.bat echo @echo off
>> letraZ.bat echo echo       ²²²²²²
>> letraZ.bat echo echo           ²²
>> letraZ.bat echo echo         ²²
>> letraZ.bat echo echo       ²²
>> letraZ.bat echo echo       ²²²²²²
>> letraZ.bat echo pause
call letraZ
goto :fin
:fin
set /p mas=¨Mas letras (S/N)?
if "%mas%" == "S" goto :inicio
if "%mas%" == "s" goto :inicio
Pause

El problema es que para que mi bat funcione según el esquema que yo he pensado, todas las letras tienen que encajar en un rectángulo determinado, en mi caso de 7 columnas (incluida la de separación del siguiente carácter) por 5 filas. Por eso hay 5 componentes del rótulo (rot1 a rot5, uno por fila) y se rellenan con las 7 componentes "columnares" del diseño de la letra. Las letras de tu diseño no se ajustan a un rectángulo fijo (creo que en la terminología de imprenta se llama "caja") y eso complica el asunto. Se puede adoptar como "caja" la más grande y meter en ella, como se decida, cada una de las letras. De hecho para la "I" he tenido que retocar el diseño básico.

Una vez situadas todas las letras en la caja que se decida se "aplana" el diseño poniéndolo en una sola línea. Por ejemplo mi E, de 7x5, sería:

²²²²²²
²²
²²²²
²²
²²²²²²

Aplanada quedaría

²²²²²²²²²²²²²²²²²²²²ÿ

Poniendo en una sola fila las cinco filas de arriba, incluido siempre el espacio de la séptima columna de separación (que en el último es un "ÿ" para evitar el tratamiento especial que se hace en el SET a los espacios finales). Y esto también tiene que ver con el número máximo de caracteres por fila (puse 10 un poco a voleo, pero el tamaño de la ventana MSDOS y el tamaño del carácter es configurable). Supongo que con estas explicaciones podrás ajustarlo a tus necesidades pero si no fuera así y quieres que te eche una mano solo tienes que decidir la "caja" a utilizar, si quieres que usemos mi sistema.

Mientras te lo piensas he incorporado tus diseños aunque sin centrarlos dentro de la "caja". Además he tenido que "meter en vereda" a la Q para que no se cargue el asunto. Si se aumenta la caja a 6 filas resultaría que salvo la Q ninguna letra tendría nada en esa zona lo que haría que el bat diera un error al intentar hacer "echo" a todo espacios (daría el mensaje "echo está desactivado". Además con esta "caja" no caben más de 6 letras por fila, de modo que he corregido el mensaje correspondiente.

@echo off
Setlocal EnableDelayedExpansion
cls
color 17
set /a cont = 0
set rot2=
set rot1=
set rot3=
set rot4=
set rot5=
set cA= ²²²²²      ²²   ²²     ²²²²²²²     ²²   ²²     ²²   ²²    ÿ 
set cB=²²²²²²²     ²²   ²²     ²²²²²²      ²²   ²²     ²²²²²²²    ÿ
set cC=²²²²²²      ²²          ²²          ²²          ²²²²²²     ÿ
set cD=²²²²²       ²²   ²²     ²²    ²²    ²²   ²²     ²²²²²      ÿ
set cE=²²²²²       ²²          ²²²²        ²²          ²²²²²      ÿ
set cF=²²²²²²      ²²          ²²²²        ²²          ²²         ÿ
set cG=²²²²²²      ²²          ²² ²²²      ²²  ²²      ²²²²²²     ÿ
set cH=²²   ²²     ²²   ²²     ²²²²²²²     ²²   ²²     ²²   ²²    ÿ
set cI=²²          ²²          ²²          ²²          ²²         ÿ
set cJ=   ²²²²         ²²          ²²      ²²  ²²      ²²²²²²     ÿ
set cK=²²   ²²     ²² ²²       ²²²²        ²² ²²       ²²   ²²    ÿ
set cL=²²          ²²          ²²          ²²          ²²²²²²     ÿ
set cM=²     ²     ²²² ²²²     ²² ² ²²     ²²   ²²     ²²   ²²    ÿ
set cN=²²   ²²     ²²²  ²²     ²² ² ²²     ²²  ²²²     ²²   ²²    ÿ
set cO=²²²²²²²     ²²   ²²     ²²   ²²     ²²   ²²     ²²²²²²²    ÿ
set cP=²²²²²²      ²²   ²²     ²²²²²²      ²²          ²²         ÿ
set cR=²²²²²²      ²²   ²²     ²²²²²²²     ²²   ²      ²²    ²    ÿ
set cS=²²²²²²²     ²²          ²²²²²²²          ²²     ²²²²²²²    ÿ
set cT=²²²²²²        ²²          ²²          ²²          ²²       ÿ
set cU=²²   ²²     ²²   ²²     ²²   ²²     ²²   ²²      ²²²²²     ÿ
set cV=²    ²      ²    ²      ²    ²       ²  ²         ²²       ÿ
set cW=²²       ²² ²²       ²² ²²   ²   ²²  ²  ² ²  ²    ²²   ²²  ÿ
set cX=²²      ²²    ²²  ²²        ²²        ²²  ²²    ²²      ²² ÿ
set cY=²²      ²²    ²²  ²²        ²²          ²²          ²²     ÿ
set cZ=²²²²²²          ²²        ²²        ²²          ²²²²²²     ÿ
set cQ=²²²²²²²     ²²   ²²     ²² ² ²²     ²²²²²²²           ²²   ÿ
set /p pal=Escribe la palabra (de menos de 7 letras):
:cont
set l=!pal:~%cont%,1!
if "%l%" == "" goto :fin
set /a cont += 1
set rot1=!rot1! !c%l%:~0,12!
set rot2=!rot2! !c%l%:~12,12!
set rot3=!rot3! !c%l%:~24,12!
set rot4=!rot4! !c%l%:~36,12!
set rot5=!rot5! !c%l%:~48,12!
goto :cont
:fin
set /a ncar=cont*13
Echo ! Rot1:~0,%ncar%!
Echo ! Rot2:~0,%ncar%!
Echo ! Rot3:~0,%ncar%!
Echo ! Rot4:~0,%ncar%!
Echo ! Rot5:~0,%ncar%!
Pause

Ya me contarás.

Efectivamente escribe las letras que uno necesite y construye palabras de menos de 7 letras

ahora bien cuando quiero solo el código de la palabra que quiero no lo tengo, para qué?

Para colocarlo en cualquier programita que haga. Por ejemplo he conseguido el código de antivirus de usb de varias fuentes, lo corro y funciona, pero cada ves que alguien me lo pide no se observa quién lo compilo. 

Si al inicio le pongo EVADU de Felix no se requiere que me pregunte que palabra deseo ver si no que necesito que aparezca la palabra que deseo, por lo tanto solo se requiere el código que forma esa palabra. Es por eso que deseaba que el bat me grabe otro bat con solo la palabra que requiero. O a su ves si me dices que internamente, puedo directamente escribir la palabra en el código, eso es lo que aparecerá como resultado, así podre usar es código para añadir a cualquier programita que consiga hacer.

Intente almenos usar solo las letras que requiero para dar como resultado 

set cA= ²²²²²      ²²   ²²     ²²²²²²²     ²²   ²²     ²²   ²²    ÿ 
set cD=²²²²²       ²²   ²²     ²²    ²²    ²²   ²²     ²²²²²      ÿ
set cE=²²²²²       ²²          ²²²²        ²²          ²²²²²      ÿ
set cF=²²²²²²      ²²          ²²²²        ²²          ²²         ÿ
set cI=²²          ²²          ²²          ²²          ²²         ÿ
set cL=²²          ²²          ²²          ²²          ²²²²²²     ÿ
set cV=²    ²      ²    ²      ²    ²       ²  ²         ²²       ÿ
set cU=²²   ²²     ²²   ²²     ²²   ²²     ²²   ²²      ²²²²²     ÿ
set cX=²²      ²²    ²²  ²²        ²²        ²²  ²²    ²²      ²² ÿ
set c =ÿ

para escribir  EVADU Felix (código por separado, pues no da posibilidad a palabras separadas por espacio o por lineas en un mismo codigo. por espacio le puse set c =ÿ pero no es buena idea pues no se nota el espacio)

Pero me pide que escriba las letras y así no debería preguntar al ejecutar un programa sino directamente salir la palabra.

Sin embargo reconozco que todo esto esta de maravilla.

Respecto a incluir el espacio como un carácter más en la "palabra" ibas por buen camino, pero tenías que haber rellenado toda la "estructura" de la "caja" con espacios. Respecto a salvar el rótulo en un bat que lo genere el truco es el mismo que usamos para las letras individuales. Te incluyo las dos cosas a continuación:

Para el "espacio":
set cU=²²   ²²     ²²   ²²     ²²   ²²     ²²   ²²      ²²²²²     ÿ
set cX=²²      ²²    ²²  ²²        ²²        ²²  ²²    ²²      ²² ÿ
set c =                                                           ÿ
Para guardar el rótulo en rotulo.bat:
>rotulo.bat echo @echo off
>>rotulo.bat echo echo ! Rot1:~0,%ncar%!
>>rotulo.bat echo echo ! Rot2:~0,%ncar%!
>>rotulo.bat echo echo ! Rot3:~0,%ncar%!
>>rotulo.bat echo echo ! Rot4:~0,%ncar%!
>>rotulo.bat echo echo ! Rot5:~0,%ncar%!

Es genial ahora he obtenido el código en otro bat para decir  EVAD POR FELIX, GRACIAS Gracias no se ve bien pero se entiende. El tamaño de la letra según me has explicado es el responsable de ciertas limitaciones para una etiqueta con varias palabras cuyo tamaño lo permita, entonces he puesto de poco a poco o por bloque, así:

@echo off
echo      ÿ  ²²²²²        ²    ²        ²²²²²       ²²²²²       
echo      ÿ  ²²           ²    ²       ²²   ²²      ²²   ²²     
echo      ÿ  ²²²²         ²    ²       ²²²²²²²      ²²    ²²    
echo      ÿ  ²²            ²  ²        ²²   ²²      ²²   ²²     
echo       ÿ ²²²²²      ÿ   ²²       ÿ ²²   ²²    ÿ ²²²²²      ÿ
echo.
echo             ÿ  ²²²²²²       ²²²²²²²      ²²²²²²      
echo              ÿ ²²   ²²      ²²   ²²      ²²   ²²     
echo             ÿ  ²²²²²²       ²²   ²²      ²²²²²²²     
echo             ÿ  ²²           ²²   ²²      ²²   ²      
echo             ÿ  ²²         ÿ ²²²²²²²    ÿ ²²    ²    ÿ
echo.
echo  ²²²²²²       ²²²²²        ²²           ²²           ²²      ²²  
echo  ²²           ²²           ²²           ²²             ²²  ²²    
echo  ²²²²         ²²²²         ²²           ²²               ²²      
echo  ²²           ²²           ²²           ²²             ²²  ²²    
echo  ²²         ÿ ²²²²²      ÿ ²²²²²²     ÿ ²²         ÿ ²²      ²² ÿ
pause

Gracias

@echo off
echo  ²²²²²²       ²²²²²²        ²²²²²       ²²²²²²       ²²            ²²²²²       ²²²²²²²     
echo  ²²           ²²   ²²      ²²   ²²      ²²           ²²           ²²   ²²      ²²          
echo  ²² ²²²       ²²²²²²²      ²²²²²²²      ²²           ²²           ²²²²²²²      ²²²²²²²     
echo  ²²  ²²       ²²   ²       ²²   ²²      ²²           ²²           ²²   ²²           ²²     
echo  ²²²²²²     ÿ ²²    ²    ÿ ²²   ²²    ÿ ²²²²²²     ÿ ²²         ÿ ²²   ²²    ÿ ²²²²²²²    ÿ
pause

Cuando uso el reemplazar en el block de notas puedo reemplazar el ² por cualquier otro, espero no se desconfigure y con eso logre cambiar de tipo de letra, con este ° si funciona el reemplazo.

Ha sido muy productivo este tema, y eso te lo debo a tí, tu paciencia y altruismo

Muy bien. Me alegro mucho de haberte servido de ayuda. Y, además, yo también he aprendido alguna cosilla y he puesto a prueba la imaginación, cosa que nunca viene mal.

Suelo entrar en la página de Todoexpertos casi a diario, incluso aunque no me lleguen las consultas. Lo cierto es que sobre mi "especialidad" no hay demasiadas.

Aprovecharé para decirte que en las nuevas versiones de Windows hay una shell mucho más potente que la heredada de MSDOS. Se llama powershell, es orientada a objetos y creo que vale la pena empezar a usarla, si es que todavía no lo has hecho. En ella no tengo gran experiencia pero la poca que tengo ha resultado muy positiva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas