@echo off
:: questo tool si occuperà di spostare la cartella di uno specifico studio da "T:\audtrl\" in "T:\Chem2Arc\"
cls
setlocal enabledelayedexpansion
call :setESC
:: mostra a video l'intestazione
echo %ESC%[34m%ESC%[4m %ESC%[0m
echo %ESC%[34m%ESC%[4m ERBC-GROUP ChemZip2Arc %ESC%[0m
echo %ESC%[34m %ESC%[0m
:: mostra a video le cartelle trovate nella sorgente
echo %ESC%[4m %ESC%[0m
echo %ESC%[4m Elenco cartelle trovate %ESC%[0m
echo.
::set frm=%~dp0
::echo %frm%
:: definisce la cartella sorgente
set frm=T:\audtrl\
:: mostra a video l'elenco delle cartelle trovate
for /d %%x in ("%frm%"\*) do (
set line=%%~nx
echo %ESC%[1m!line!%ESC%[0m
)
echo.
echo %ESC%[4m %ESC%[0m
echo.
:: chiederà all'utente di inserire il nome della cartella da trasferire
set Studio=
SET/P Studio=Cartella da comprimere e spedire :
set archDir=T:\Chem2Arc\%Studio%
:: mostra a video uno specchietto ripilogativo dell'operazione
echo.
echo %ESC%[4m %ESC%[0m
echo.
echo La cartella dello studio: %ESC%[92m%Studio%%ESC%[0m
echo e tutto il suo contenuto varra' %ESC%[91marchiviato%ESC%[0m in: %ESC%[92m%archDir%%ESC%[0m
echo.
echo %ESC%[4m %ESC%[0m
echo.
:: chiederà all'utente di confermare o meno il traferimento della cartella
set response=
set /P response=Confermi l'operazione di spostamento? (%ESC%[92ms%ESC%[0m/%ESC%[92mn%ESC%[0m) :
IF "%response%" == "n" (
echo.
echo %ESC%[101m %ESC%[0m
echo %ESC%[91m NESSUNA OPERAZIONE DI SPOSTAMENTO E' STATA ESEGUITA%ESC%[0m
echo %ESC%[101m %ESC%[0m
echo.
pause
GOTO :eof
) ELSE IF "%response%" == "s" (
GOTO :7zip
) ELSE (
echo %ESC%[101m %ESC%[0m
echo %ESC%[101m %ESC%[0m %ESC%[91mVALORE INSERITO NON VALIDO%ESC%[0m %ESC%[101m %ESC%[0m
echo %ESC%[101m %ESC%[0m
pause
GOTO :eof
)
:7Zip
rem path C:\Program Files\WinRAR;%path%
path C:\Program Files\7-Zip;%path%
set fromDir=T:\audtrl\%Studio%
:: Controlla che la cartella sorgente inserita esite o meno
IF EXIST %fromDir% (
:: nel caso esiste prosegue...
echo.
) ELSE (
:: nel caso NON esiste riporta a video il seguente messaggio, e premendo un qualunque tasto esce
echo %ESC%[101m %ESC%[0m
echo %ESC%[91m IL NOME CARTELLA INSERITO NON ESISTE %ESC%[0m
echo %ESC%[101m %ESC%[0m
echo.
pause
GOTO :eof
)
set Bio="%fromDir%\Bio\*"
set Form="%fromDir%\Form\*"
:: Controlla se esiste la cartella Bio...se si va alla funzione BIO
IF EXIST %Bio% GOTO BIO
:: Controlla se esiste la cartella Form...se si va alla funzione FORM
IF EXIST %Form% GOTO FORM
goto :RUN
:BIO
IF %time:~0,2% leq 9 (
set orainvio=%date:~6,4%%date:~3,2%%date:~0,2%_0%time:~1,1%%time:~3,2%%time:~6,2%
) else (
set orainvio=%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%
)
7z a -tzip -sdel "%Studio%Bio.zip" "%Studio%\Bio"
:: rar m %Studio%Bio.rar %Studio%\Bio -m2 -ms -vn -v2g -t
:: REN %Studio%Bio.r* %Studio%Bio_%orainvio%.r*
REN %Studio%Bio.z* %Studio%Bio_%orainvio%.z*
:: rar l -v %Studio%Bio_%orainvio%.rar > %Studio%Bio.txt
7z l "%Studio%Bio_%orainvio%.zip" > "%Studio%Bio.txt"
REN %Studio%Bio.txt %Studio%Bio_ZIPLog_%orainvio%.txt
MD %Studio%\Bio\
MOVE %Studio%Bio*.* %Studio%\Bio\
:: Controlla se esiste la cartella Form...se si va alla funzione FORM
IF EXIST %Form% GOTO FORM
goto :RUN
:FORM
IF %time:~0,2% leq 9 (
set orainvio=%date:~6,4%%date:~3,2%%date:~0,2%_0%time:~1,1%%time:~3,2%%time:~6,2%
) else (
set orainvio=%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%
)
:: rar m %Studio%Form.rar %Studio%\Form -m2 -ms -vn -v2g -t
7z a -tzip -sdel "%Studio%Form.zip" "%Studio%\Form"
:: REN %Studio%Form.r* %Studio%Form_%orainvio%.r*
REN %Studio%Form.z* %Studio%Form_%orainvio%.z*
7z l "%Studio%Form_%orainvio%.zip" > "%Studio%Form.txt"
REN %Studio%Form.txt %Studio%Form_ZIPLog_%orainvio%.txt
MD %Studio%\Form\
MOVE %Studio%Form*.* %Studio%\Form\
:RUN
robocopy "%fromDir%" "%archDir%" /E /MOVE /A+:RA /LOG:LogInvio.txt /TS /NC /FP /NP /ETA /NJH /TEE
:: dettaglio comandi ROBOCOPY
:: /E Copia le sottodirectory. Questa opzione include automaticamente directory vuote.
:: /MOVE sposta se la copia va a buon fine
:: /a+:[RASHCNET] Aggiunge gli attributi specificati ai file copiati. I valori validi per questa opzione sono:
:: R - Sola lettura
:: A - Archivio
:: S - Sistema
:: H - Nascosto
:: C - Compresso
:: N - Non indicizzato contenuto
:: E - Crittografato
:: T - temporaneo
:: /LOG:<logfile> Scrive l'output di stato nel file di log sovrascrivendo il file di log esistente.
:: /TS Include i timestamp del file di origine nell'output.
:: /NC Specifica che le classi di file non devono essere registrate.
:: /FP Include i nomi di percorso completi dei file nell'output.
:: /NP Specifica che lo stato dell'operazione di copia (il numero di file o directory copiati finora) non deve essere visualizzato.
:: /ETA Mostra il tempo stimato di arrivo (ETA) dei file copiati.
:: /NJH Specifica che non è presente alcuna intestazione del processo.
:: /TEE Scrive l'output dello stato nella finestra della console, nonché nel file di log.
IF %time:~0,2% leq 9 (
set orainvio=%date:~6,4%%date:~3,2%%date:~0,2%_0%time:~1,1%%time:~3,2%%time:~6,2%
) ELSE (
set orainvio=%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%
)
REN LogInvio.txt LogInvio_%orainvio%.txt
attrib +r +a LogInvio_%orainvio%.txt
MOVE LogInvio_%orainvio%.txt "%archDir%\LogInvio_%orainvio%.txt"
:: stamperà il log sulla stampante di default
rem mettere rem alla davanti alla riga successiva per togliere autoprint
notepad.exe /p "%archDir%\LogInvio_%orainvio%.txt"
:: mostrerà a video il file di log
notepad.exe "%archDir%\LogInvio_%orainvio%.txt"
::del ChemRar2Arc.cmd
:setESC
FOR /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') DO (
set ESC=%%b
exit /B 0
)