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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema con set /A 09 y 08
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con set /A 09 y 08  (Leído 6,125 veces)
KF

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Problema con set /A 09 y 08
« en: 25 Septiembre 2008, 22:34 pm »

Al loro con el problema que tengo con el Set /A...

supuestamente es para pasar a numero una variable y poder calcular...y poder meterlo en otras variables...etc

Codigo correcto:
set var1=03
set /A var2=%var1%*2

ECHO Variable1: %var1%
ECHO Variable2: %var2%



Sin embargo, si la variable var1 la incializo con 08 o 09:
set var1=08
set /A var2=%var1%*2

ECHO Variable1: %var1%
ECHO Variable2: %var2%



Me da el siguiente error:
F:\>Prueba.cmd
Número no válido . Las constantes numéricas son decimales(17),
hexadecimales (0x11), u octales (021).
Variable1: 08
Variable2: 6



y se me quedan los valores anteriores en la var2.

Alguien podria indicar una idea feliz para resolver esto....


En línea

Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: Problema con set /A 09 y 08
« Respuesta #1 en: 25 Septiembre 2008, 23:03 pm »

si le sacas el 0 de enfrente al 9 va bien xD
Código:
@echo off
set var1=8
set /A var2=%var1% * 2

ECHO Variable1: %var1%
ECHO Variable2: %var2%
pause
ahorano me preguntes por que =|
saludos


En línea

KF

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Re: Problema con set /A 09 y 08
« Respuesta #2 en: 26 Septiembre 2008, 00:03 am »

Necesito que sea 09 y 08, ya que lo cojo de la variable Date del sistema.
08 es Agosto y 09 es Septiembre(este mes).

Necesito una funcion que me calcule el dia anterior.
Asi que no me funciona ni para Agosto ni para Septiembre...
En línea

Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: Problema con set /A 09 y 08
« Respuesta #3 en: 26 Septiembre 2008, 02:45 am »

Código:
@echo off
set a=%date:~4,1%
echo %a%
set /a b=%a% + 01
echo %b%
pause
no se si te servira, pero por hay podria darte una idea que se yo
saludos
En línea

carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: Problema con set /A 09 y 08
« Respuesta #4 en: 26 Septiembre 2008, 19:34 pm »

no puedes ingresar a un set /a 08 o 09, porque anteponiendo 0 dices que es octal, y el conjunto de números octales va de 0 a 7.
La otra vez hice una función, que te retornaba la fecha, en tres variables, recursivamente. (La rescate del caché de google :D)

Código:
@echo off
rem Funcion recursiva que devuelve la fecha en formato decimal.
rem author CarlitoS.dll
rem %day% = dia
rem %month% = mes
rem %year% = agno

:date
if [%1]==[] (for /f "tokens=1-3 delims=-" %%a in ("%date%") do (call :date %%a %%b %%c))
if not [%1]==[] (
set day=%1
set month=%2
set year=%3
goto :eof
)
set day=%day:*0=%
set month=%month:*0=%
echo %day%
echo %month%
echo %year%
goto :eof
En línea

KF

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Re: Problema con set /A 09 y 08
« Respuesta #5 en: 28 Septiembre 2008, 20:32 pm »

Al final acabé haciendolo en un VBscript, algo mas de potencia... 2ª marcha

En msdos no se puede pasar a numero el 08 y 09, porque como has dicho carlitos.dll debe entenderlo como octal... es flipante... :-)
Los de microsoft no dejan de sorprenderme. Ya apuntaban maneras hasta en el msdos..

Bueno, muchas gracias a los dos.
En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Problema con set /A 09 y 08
« Respuesta #6 en: 30 Septiembre 2008, 00:10 am »

digo, hubieras podido hacer..
Código
  1. set y=09
  2. set /a y=1%y%-100
  3. echo %y%
  4.  
:P

te sirve para la fecha al menos

Saludos!!
En línea

carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: Problema con set /A 09 y 08
« Respuesta #7 en: 30 Septiembre 2008, 07:38 am »

Que buena idea sirdarckat, no se me había ocurrido, y tiene mucha lógica.
Implementé tu idea al código.

Código:
@echo off
call:date
echo %day%
echo %month%
echo %year%
pause
goto :eof

::::::::::::::::::::Funcion::::::::::::::::::::
:date
if [%1]==[] (for /f "tokens=1-3 delims=-" %%a in ("%date%") do (call :date %%a %%b %%c))
if not [%1]==[] (
set /a day=1%1-100
set /a month=1%2-100
set /a year=%3
)
goto:eof
::::::::::::::::::::Funcion::::::::::::::::::::

« Última modificación: 30 Septiembre 2008, 07:42 am por carlitos.dll » 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