Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: moikano→@ en 11 Diciembre 2010, 17:32 pm



Título: [Batch] sacar el dia de la varibale %DATE% (Solucionado)
Publicado por: moikano→@ en 11 Diciembre 2010, 17:32 pm
Saludos

Estoy intentando hacer una especie de programador de tareas un tanto rústico con batch.
Lo que quiero hacer es que en una variable se guarde el día o el mes o el año (lo que yo quiera) de la variable de entorno %date% y luego la compare con un if para ejecutar una lista de comandos en caso de que el día coincida con el 1 o 4 o en definitiva el numero que yo quiera.

No se si me e explicado bien, no voy a poner un código de ejemplo porque no se que usar exactamente para poder sacar los dos primeros números (para el día) de la variable %date% y almacenarlos en otra variable.

No hace falta que me hagáis el código completo, ya que yo quiero que me digáis mas o menos los parámetros a usar y ya me lo monto yo, que sino no aprendo nada. A y sobretodo si esto es posible.

Gracias de antemano =)



Título: Re: [Batch] sacar el dia de la varibale %DATE%
Publicado por: leogtz en 11 Diciembre 2010, 18:56 pm
Puedes usar extracción de caracteres.

Código
  1. set myvar=%time:~m,n%

Obtienes la subcadena desde la posición "m" hasta "n". Ve jugando con eso para obtener lo que deseas.

Otra manera es usar FOR.

Código
  1. for  /f "tokens=1,2,3" %%a in ('echo %time%') do (
  2.    set a=%a%
  3.    set b=%b%
  4.    set c=%c%
  5. )
  6.  
  7.  

Sin probar.

PD: También se puede usar time /t en el for.


Título: Re: [Batch] sacar el dia de la varibale %DATE%
Publicado por: FJPPitta en 11 Diciembre 2010, 19:29 pm
y con

Código:
%date:~0,2%

tambien funcionaria?

Código:
set dia=%date:~0,2%

saludos


Título: Re: [Batch] sacar el dia de la varibale %DATE%
Publicado por: moikano→@ en 11 Diciembre 2010, 20:49 pm
Ok, voy a probarlo. Gracias =)


Título: Re: [Batch] sacar el dia de la varibale %DATE%
Publicado por: moikano→@ en 11 Diciembre 2010, 21:06 pm
Perfecto, justo lo que buscaba! Gracias!  ;-)

Con el for tokens (que ya me olía que con ese parámetro se podía hacer) no me e aclarado, pero con el otro a sido muy fácil.

Por si alguien quiere saber la solución el código quedaría así:

Código:
@echo off
set myvar=%date:~0,2%
echo %myvar%
pause > nul

Esto devuelve el día que tiene asignado tu SO.