View Full Version : Batch dos: elimina file Data-di-ieri-laltro.txt
Ciao, avrei l'esigenza di eliminare un file di testo che ho rinominato 2 giorni fà con questo sistema:
ren Z:\*00_doc_test*.txt 00_doc_test_backup_%Date:~6,4%-%Date:~3,2%-%Date:~0,2%-su-SERVER-questo-DEVE-esserci.txt
00_doc_test_backup_2019-12-03-su-SERVER-questo-DEVE-esserci.txt
Come faccio oggi a ELIMINARE il txt di 2gg fà (e non quello rinominato ieri)?
Cioè, domani 04/12/2019 io avrò questi 2 file copiati in una cartella backup
00_doc_test_backup_2019-12-02-su-SERVER-questo-DEVE-esserci.txt
00_doc_test_backup_2019-12-03-su-SERVER-questo-DEVE-esserci.txt
e vorrei cancellare
00_doc_test_backup_2019-12-02-su-SERVER-questo-DEVE-esserci.txt
cioè quello con data -2gg
Sapreste dirmi come fare per "calcolare" il nome file con data -2gg da oggi e cancellarlo?
x_Master_x
03-12-2019, 18:43
@ECHO OFF
SetLocal EnableDelayedExpansion
SET N=2
SET i=100
FOR %%a in (31 28 31 30 31 30 31 31 30 31 30 31) do set /A "i+=1" & SET "dpm[!i!]=%%a"
FOR /F "tokens=1-3 delims=/" %%a in ("%DATE%") do (
SET /A "DD=1%%a-N, I=^!(((DD-101)>>31)+1), MM=1%%b-I, J=^!(MM-100), MM+=J*12"
SET /A "YYYY=%%c-J, dpm[102]+=^!(YYYY%%4), DD+=I*dpm[!MM!]"
)
SET "newDate=%DD:~1%/%MM:~1%/%YYYY%
ECHO %newDate%
PAUSE
Ti consiglio Old Files Manager, link in firma, in ogni caso
@ECHO OFF
SetLocal EnableDelayedExpansion
SET N=2
SET i=100
FOR %%a in (31 28 31 30 31 30 31 31 30 31 30 31) do set /A "i+=1" & SET "dpm[!i!]=%%a"
FOR /F "tokens=1-3 delims=/" %%a in ("%DATE%") do (
SET /A "DD=1%%a-N, I=^!(((DD-101)>>31)+1), MM=1%%b-I, J=^!(MM-100), MM+=J*12"
SET /A "YYYY=%%c-J, dpm[102]+=^!(YYYY%%4), DD+=I*dpm[!MM!]"
)
SET "newDate=%DD:~1%/%MM:~1%/%YYYY%
ECHO %newDate%
PAUSE
Ti consiglio Old Files Manager, link in firma, in ogni caso
Grazie per la rapidità :)
... temo di non aver capito nulla ...
preferirei continuare a usare comandi dos e file bat ...
tipo un semplice del .... da lanciare ogni giorno assieme all'altro file batch che già ora rinomina prima del backup ....
in pratica vorrei arrivare a
del 00_doc_test_backup_2019-12-02-su-SERVER-questo-DEVE-esserci.txt
dove il pezzo variabile "2019-12-02" deve essere calcolato con la formula OGGI-2gg
Puoi aiutarmi anche in questo caso? :)
x_Master_x
03-12-2019, 22:33
Hai eseguito il batch? Penso di no altrimenti avresti visto l'ECHO...
Hai eseguito il batch? Penso di no altrimenti avresti visto l'ECHO...
Ciao, non avevo lanciato perchè credevo servisse "old file manager" o altro che non volevo installare ... non credevo che un codice così complesso funzionasse in dos ...
Ora ho lanciato e capito qualcosa :)
Ho provato a modificare per adattare, ma ancora non ho capito come debbo fare per ottenere la data in formato
YYYY-MM-DD: Come vedi sotto ho provato ma mi esce una data così: "019-12-102" ... cosa sbaglio?
@ECHO OFF
SetLocal EnableDelayedExpansion
SET N=2
SET i=100
FOR %%a in (31 28 31 30 31 30 31 31 30 31 30 31) do set /A "i+=1" & SET "dpm[!i!]=%%a"
FOR /F "tokens=1-3 delims=/" %%a in ("%DATE%") do (
SET /A "DD=1%%a-N, I=^!(((DD-101)>>31)+1), MM=1%%b-I, J=^!(MM-100), MM+=J*12"
SET /A "YYYY=%%c-J, dpm[102]+=^!(YYYY%%4), DD+=I*dpm[!MM!]"
)
SET "newDate=%DD:~1%/%MM:~1%/%YYYY%
SET "newDate=00_doc_test_backup_%YYYY:~1%-%MM:~1%-%DD%
ECHO %newDate%
PAUSE
ECHO Adesso cancello il file %newDate%.txt
PAUSE
DEL 00_doc_test_backup_019-12-102.txt
ECHO Adesso cancello il file su T:
PAUSE
DEL T:\BACKUP_CF\Giornaliero\Posta\00_doc_test_backup_2019-12-01-su-SERVER-questo-DEVE-esserci.txt
ECHO FATTO! :)
PAUSE
x_Master_x
07-12-2019, 10:53
Old Files Manager non si installa e comunque credo che utilizzare codice che non si sa gestire non è una grande idea, per questo ti consigliavo il mio programma
@ECHO OFF
SetLocal EnableDelayedExpansion
SET N=2
SET i=100
FOR %%a in (31 28 31 30 31 30 31 31 30 31 30 31) do set /A "i+=1" & SET "dpm[!i!]=%%a"
FOR /F "tokens=1-3 delims=/" %%a in ("%DATE%") do (
SET /A "DD=1%%a-N, I=^!(((DD-101)>>31)+1), MM=1%%b-I, J=^!(MM-100), MM+=J*12"
SET /A "YYYY=%%c-J, dpm[102]+=^!(YYYY%%4), DD+=I*dpm[!MM!]"
)
SET "newDate=%YYYY%-%MM:~1%-%DD:~1%"
ECHO del 00_doc_test_backup_%newDate%-su-SERVER-questo-DEVE-esserci.txt
PAUSE
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.