Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

file batch e comando per recurepere data ora minuti.

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

file batch e comando per recurepere data ora minuti.

Postdi ivo » 03/04/13 08:44

in un file batch sto cercando di stabilire la data + l'ora e i minuti, mettendola in una variabile e poi la richiamo all'interno di un comando che crea un file compresso con il comando tar e poi con il comando gzip

i comandi sono:
set data=%Date:~6,4%-%Date:~3,2%-%Date:~0,2%-%Time:~0,5%
e successivamente
.\tar cvf .\copie\Backup_Saggio_%data% .\cont\aui*
e poi
.\gzip .\copie\Backup_Saggio_%data%

il fatto è che mi sono accorto di una cosa un po' strana

dal prompt di DOS ho eseguito il comando
set data=%Date:~6,4%-%Date:~3,2%-%Date:~0,2%-%Time:~0,5%
poi per vedere contenuto ho eseguito
echo %data%
il risultato è stato il seguente
2012-04-03- 9.20

al posto dell'orario 09.20 c'è [spazio]9.20 ????

per questo motivo se cerco di eseguire i comandi tar e gzip non funzionano.

Invece se fossero le 10.20 tutto funziona alla grande.

cosa sto sbagliando???
Immagine
Avatar utente
ivo
Utente Senior
 
Post: 1134
Iscritto il: 20/08/01 01:00
Località: Treviso

Sponsor
 

Postdi archimede » 03/04/13 11:12

ivo ha scritto:al posto dell'orario 09.20 c'è [spazio]9.20
Ho fatto una prova veloce:
Codice: Seleziona tutto
@echo off
set data=%Date:~6,4%-%Date:~3,2%-%Date:~0,2%-%Time:~0,5%
echo %data%
a me dà 2013-04-03-08:56 (Win XP Pro SP3).

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

[RISOLTO] file batch e comando per recurepere data ora minut

Postdi ivo » 03/04/13 13:32

scartabellando un po' qua e là con Google
ho recuperato:
Workaround: create a variable that formats the date with leading 24h zero
set fulltime = %time: =0%
and only then cut out the string parts you need.
echo %fulltime:~0,2%


http://martycodes.blogspot.it/2012/08/dos-batch-script-and-date-times.html

ho risolto in questo modo

Codice: Seleziona tutto
set fulltime=%time: =0%
set data=%Date:~6,4%-%Date:~3,2%-%Date:~0,2%-%fulltime:~0,2%.%fulltime:~3,2%
.\tar cvf .\copie\Backup_Saggio_%data%  .\cont\aui* .\cont\aui-base
Immagine
Avatar utente
ivo
Utente Senior
 
Post: 1134
Iscritto il: 20/08/01 01:00
Località: Treviso

Re: file batch e comando per recurepere data ora minuti.

Postdi ivo » 03/04/13 14:44

per vostra conoscenza vi trascrivo l'intero file batch
perché oltre alla creazione del file compresso con la data e ora, effettuo alcuni test e creo un file di log
magari quel che ho fatto io, può servire a qualcun'altro.


Codice: Seleziona tutto
@echo off
cls
echo.
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                           ³
echo ³              COPIE SALVATAGGIO ARCHIVI saggio                             ³
echo ³                                                                           ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo.
echo.
echo Premere un tasto per continuare  o CTRL-C per annullare il salvataggio
pause>nul
echo.
echo.
echo.
echo.


set fulltime=%time: =0%
set data=%Date:~6,4%-%Date:~3,2%-%Date:~0,2%-%fulltime:~0,2%.%fulltime:~3,2%
.\tar cvf .\copie\Backup_Saggio_%data%  .\cont\aui* .\cont\aui-base
echo.
cls
echo.
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                            ³
echo ³         VERIFICA   COPIE SALVATAGGIO ARCHIVI SAGGIO                        ³
echo ³         ÄÄÄÄÄÄÄÄ                                                           ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
.\tar tvf .\copie\Backup_Saggio_%data%
echo.
echo compressione archivi ...
.\gzip .\copie\Backup_Saggio_%data%
echo.
rem pause
:sposta
cls
SET /P uname=Prego scrivere il percorso dove spostare il backup (esempio C:\):
IF "%uname%"=="" GOTO Error
copy .\copie\Backup_Saggio_%data%.gz %uname%
GOTO Test
:Error
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                            ³
echo ³        N O N   H A I   S C R I T T O   A L C U N   P E R C O R S O !       ³
echo ³                                                                            ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo.
echo.
echo.
pause
goto sposta


:Test

if exist %uname%\Backup_Saggio_%data%.gz  goto ok
rem cls
:Error2
set errore=NON ESEGUITO
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                            ³
echo ³               S A L V A T A G G I O   N O N   E S E G U I T O !            ³
echo ³                                                                            ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo.
echo.
echo.
pause
goto end


ECHO 
ECHO 
ECHO 
echo off
echo.

:ok
cls
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                            ³
echo ³   S A L V A T A G G I O   C O P I E  -  S A G G I O - T E R M I N A T O    ³
echo ³                                                                            ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
set errore=ESEGUITO
pause
:end
echo %data%    %uname%    %errore% >> log.txt
Immagine
Avatar utente
ivo
Utente Senior
 
Post: 1134
Iscritto il: 20/08/01 01:00
Località: Treviso

Re: file batch e comando per recurepere data ora minuti.

Postdi ivo » 04/04/13 11:25

il file batch è stato ulteriormente migliorato, in quanto c'erano delle inprecisioni qua e là.
1. quando il programma chiedeva il percorso dove salvare il backup, non poteva utilizzare percorso contenenti spazi (es. C:\documents and settings\utente\desktop)
2. inclusa una gestione di log del salvataggio, che scrive sempre in un file : data, percorso, esito salvataggio;
3. se il salvataggio non va a buon fine, triplo beep (del pc-speaker) e si apre il notepad con il log.

Codice: Seleziona tutto
@echo off
cls
echo.
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                           ³
echo ³              COPIE SALVATAGGIO ARCHIVI saggio                             ³
echo ³                                                                           ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo.
echo.
echo Premere un tasto per continuare  o CTRL-C per annullare il salvataggio
pause>nul
echo.
echo.
echo.
echo.


set fulltime=%time: =0%
set data=%Date:~6,4%-%Date:~3,2%-%Date:~0,2%-%fulltime:~0,2%.%fulltime:~3,2%
.\tar cvf .\copie\Backup_Saggio_%data%  .\cont\aui* .\cont\aui-base
echo.
cls
echo.
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                            ³
echo ³         VERIFICA   COPIE SALVATAGGIO ARCHIVI SAGGIO                        ³
echo ³         ÄÄÄÄÄÄÄÄ                                                           ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
.\tar tvf .\copie\Backup_Saggio_%data%
echo.
echo compressione archivi ...
.\gzip .\copie\Backup_Saggio_%data%
echo.
rem pause
:sposta
cls
SET /P uname=Prego scrivere il percorso, compresivo della \ finale, dove spostare il backup (esempio C:\):
IF "%uname%"=="" GOTO Error
copy .\copie\Backup_Saggio_%data%.gz "%uname%"
GOTO Test
:Error
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                            ³
echo ³        N O N   H A I   S C R I T T O   A L C U N   P E R C O R S O !       ³
echo ³                                                                            ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo.
echo.
echo.
pause
goto sposta


:Test

if exist "%uname%"Backup_Saggio_%data%.gz  goto ok
rem cls
:Error2
set errore=NON ESEGUITO
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                            ³
echo ³               S A L V A T A G G I O   N O N   E S E G U I T O !            ³
echo ³                                                                            ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo.
echo.
echo.
pause



ECHO 
ECHO 
ECHO 
echo off
echo.
goto end

:ok
cls
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³                                                                            ³
echo ³   S A L V A T A G G I O   C O P I E  -  S A G G I O - T E R M I N A T O    ³
echo ³                                                                            ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo il file si chiama
echo Backup_Saggio_%data%.gz
echo ÿ
echo ed Š stato salvato nella cartella
echo %uname%
set errore=ESEGUITO
echo ÿ
pause
:end
echo %data%    %uname%    %errore% >> copia_saggio.log
if "%errore%"=="NON ESEGUITO"  notepad copia_saggio.log
Immagine
Avatar utente
ivo
Utente Senior
 
Post: 1134
Iscritto il: 20/08/01 01:00
Località: Treviso


Torna a Programmazione


Topic correlati a "file batch e comando per recurepere data ora minuti.":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti