Cita de: Runex en 28 Abril 2012, 02:13 AMCódigo (dos) [Seleccionar]
if %numero%>1 && %numero%<10 echo 1 digito
...
Pause>Nul
No sé si funcionará porque no lo he podido probar además, yo de batch poca idea tengo
No no se puede hacer una comprobación de multiples condiciones (Bueno, No como se haría en PY u otro xD) en Batch. Además ">" y "&" "&&" tampoco son operadores de comparación.
Pero tampoco ibas muy mal encaminado, Quedaría así:
Código (dos) [Seleccionar]
@Echo OFF
:Loop
set /p numero=Numero ^>
if %numero% LSS 10 (Echo 1 digito)
if %numero% GEQ 10 (If %numero% LSS 100 (echo 2 digitos))
if %numero% GEQ 100 (If %numero% LSS 1000 (echo 3 digitos))
if %numero% GEQ 1000 (If %numero% LSS 10000 (echo 4 digitos))
Goto :Loop
Aunque esta forma es mejor para evitar limitaciones y código...:
Código (dos) [Seleccionar]
@Echo OFF
:Loop
set /p numero=Numero ^>
ECHO %Numero% > "%TEMP%\tempfile.txt"
FOR %%? IN ("%TEMP%\tempfile.txt") DO ( SET /A digitos=%%~z? - 3 )
Echo %numero% tiene %digitos% digitos.
Goto :Loop
Salu2