Vai al contenuto

ChemZip2Arc.cmd

@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
)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *