Comandi dos - formatare la data

giovedì 29 ottobre 2009 - 11.31

perla0279 Profilo | Senior Member

Ciao
dovrei inserire attraverso l'utilizzo di comandi dos una data all'interno di una variabile.

set DATA=%date%

mi ritorna la data formattata come 29/10/2009
io invece vorrei come formattazione questa : 20091029


come posso fare ????????

MarKonE Profilo | Guru

Ciao,

prova a dare un'occhiata qui : http://www.tech-recipes.com/rx/956/windows-batch-file-bat-to-get-current-date-in-mmddyyyy-format/

L'ultima riga ( SET date=%mm%%dd%%yyyy% ) va modificata secondo le tue esigenze.

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

perla0279 Profilo | Senior Member

ho fatto così e funziona:

SET DSIST=%DATE%
SET ORA=%TIME%
SET NDATA=%DSIST:~6,4%%DSIST:~3,2%%DSIST:~0,2%_%ora:~0,2%%ora:~3,2%
echo %ndata%

adesso dovrei togliere dei giorni alla data contenuta nella variabile

cioè per farmi capire:
%ndata% - 10gg

Si può fare???

MarKonE Profilo | Guru

Non vorrei dire stupidaggini ma mi sembra che in DOS non esistano funzioni tipo DateDiff ecc.

In alternativa potresti "calcolare" la data che vuoi ottenere....ma la ti tocca gestire i casi in cui il giorno < 10.... dove quindi cambia anche il mese ed eventualmente l'anno.

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

MarKonE Profilo | Guru

Domanda....come mai ti serve in dos ? Stai facendo uno script ?

Magari puoi creare uno script diverso (tipo vbscript) e godere dei vantaggi che porta.

Se mi spieghi bene il contesto e quello che vuoi ottenere magari troviamo una soluzione più agevole.

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

perla0279 Profilo | Senior Member

ci ho messo un pò a rispondere ma ho cercato strade alternative..... senza trovare nulla !!! :-( :-(

Devo sottrarre dei giorni da una data
per fare un esempio se oggi è il 09/11/2009 devo sotrarre - 10 e ottenere 30/10/2009....


All'inizio avevo fatto così:

SET DSIST=%DATE%
SET ORA=%TIME%
SET NDATA=%DSIST:~6,4%%DSIST:~3,2%%DSIST:~0,2%_%ora:~0,2%%ora:~3,2%

SET /A GDATA=%DSIST:~0,2%-4
echo %gdata%

e sembrava funzionare fino al cambio del mese !!!! Infatti i primi giornio del mese la funzione mi restituisce 2 -3 -4- ecc..
invece di 02 - 03 - 04
e quindi dopo quando vado a passare la variabile alla funzione sucessiva mi dà errore...

spero di essermi spiegata

MarKonE Profilo | Guru

Ciao, per contesto in tendevo un quadro più generale di quello che devi realizzare....in modo da capire se si può fare con altri strumenti che non siano file batch.

Ciao


My Blog... http://blogs.dotnethell.it/Mark/

perla0279 Profilo | Senior Member

Ho trovato la soluzione................
per sbaglio leggendo una giuda per fare un'altra cosa :-) :-)

Salvando le date in un file txt.....
poi recupero i dati così
for /f %%i in (fine.txt) do (
set DATAFINE=%%i
)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5