Ciao a tutti, vorrei scrivere un piccolo file batch che:
1-mi effettui una copia di un file dalla rete al disco locale
2-rinomini il file copiato in locale in: nomefile_AAAA.MM.GG_hh.min.sec
3-conti i file di backup
4-elimini il file di backup più vecchio quando ne esistono n copie
Ho cercato un pò in rete e prendendo vari pezzi di codice avrei scritto questo, ma prima di provarlo volevo un vostro parere/aiuto!
1/2 parte di codice che copia il file da c: a d: aggiungendo alla file la data e l'ora correnti:
@echo off
timeout /t 5
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%
set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
copy "C:\Folder\File.txt" "D:\Backup\File - %stamp%.txt"
3-parte che conta i file di backup ed esegue un'operazione se sono più di n:
SETLOCAL
SETLOCAL ENABLEDELAYEDEXPANSION
SET count=0
for %%o IN (D:\temp\*.*) DO (
echo %%o
SET /A count=count + 1
)
echo %count%
IF "%count%"=="100" ECHO "operazione"
ENDLOCAL ENABLEDELAYEDEXPANSION
ENDLOCAL
4-parte che elimina il file più vecchio:
for /f "delims=" %%a in ('dir "D:\Backup" /b /o-d /a-d') do (
set "file=%%a"
)
del "%file%"
Mi aiutate a mettere insieme questo codice ed adattarlo alle mie esigenze?
Grazie.