(Solucionado)[BATCH]Como ajustar las medidas del CMD,dependiendo del resultado d

Iniciado por SuperDraco, 21 Enero 2011, 13:50 PM

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

SuperDraco

Hola de nuevo xD tengo que pedir ayuda a los expertos por tercera vez :P con este mensaje termino de exponer mis problemas con batch, uf, a ver, como explico este problema...

Lo que quiero hacer y no consigo es.. intentar ajustar las medidas de la consola, dependiendo de cuantas letras contenga un comando "echo"

No les pido que me hagan el trabajo entero aunque seria un gran alivio para mi, pero si al menos me pueden decir si necesito contadores, o si con el comando FOR ya me basta... cualkier ayuda porfavor...


Solo tengo echo esto porque no se lo que necesito:


:BIEN
set nombre=Problema :(
set centrar=nircmd win center ititle "%nombre%"

Mode con cols=54 lines=3
echo+ & echo+ "%nombre%" se ha instalado correctamente   :) & sleep 3 & cls

Mode con cols=40 lines=3 & %centrar% & color 2
echo+ & echo+ INSTALACION FINALIZADA CON EXITO !!  & sleep 3


osea lo q necesito es q en ese momento la ventana se ajuste automáticamente a la primera frase del echo, y luego a la segunda... que dificil no? :(

saludos :/



EDITO:

Para que vean que no me como los mocos llevo un buen rato intentando cosas por mi cuenta como:

SET count=1
FOR /f "tokens=1,9 usebackq" %%i IN ('echo+ %nombre% se ha instalado correctamente') DO set /a count+=1
echo %count% & pause>nul


pero nada, algo va mal xD, la idea seria que gracias a FOR la frase me diera el numero de letras exacto, un numero como resultado en la variable count, y ese numero colocarlo en el comando "mode con cols=%count%"

kizas no voy mal encaminado, pero no se usar para nada los tokens , y el delims... lo odio xD, de lo que me doy cuenta probando y probando es que el tokens actua por palabras, no por letras,me coge la primera palabra, pero nunca la primera letra de la palabra, quizas soy yo que no se hacerlo por letras... no se :/

Bueno sigo esperando la ayuda grax
No he vuelto, solo estoy de paso.

xassiz~

haya la longitud de la cadena nombre y úsala en el mode con cols.

SuperDraco

me lo puedes explicar mejor? xD a que te refieres con hayarla

uf, q dificil esta esto :S creo que estoy intentando hacer lo que tu dices pero con la frase entera, y no se hacerlo.

saludos
No he vuelto, solo estoy de paso.

xassiz~

Código (dos) [Seleccionar]

@echo off
set "cadena=pitoloko"
call :getLength %cadena%
echo."%cadena%" mide %length%
>nul pause
exit

:getLength
set str=%*
:getLength_2
set "str=%str:~1%" && set /a length+=1
if defined str (goto :getLength_2) || (goto :eof)


Utiliza esa función "getLength" y haz "mode con cols=%length%".


Saludos!

SuperDraco

[quote author=pablomi link=topic=317418.msg1571585#msg1571585 date=1295642693]
[code=dos]
@echo off
set "cadena=pitoloko"
call :getLength %cadena%
echo."%cadena%" mide %length%
>nul pause
exit

:getLength
set str=%*
:getLength_2
set "str=%str:~1%" && set /a length+=1
if defined str (goto :getLength_2) || (goto :eof)


Utiliza esa función "getLength" y haz "mode con cols=%length%".


Saludos!
[/quote]


funciona de maravilla, mil graciassss[/code]
No he vuelto, solo estoy de paso.