Aggiornamento software gestionale, automatico, da prompt dei comandi

Se sviluppi software ti sarai senz’altro trovato nelle condizioni di dover aggiornare l’eseguibile a seguito di modifiche apportate al programma. Mettere in piedi una procedura studiata ad-hoc per snellire un aggiornamento del tuo software gestionale, in automatico, di tutti i file e le cartelle che lo compongono ti farebbe risparmiare un bel po’ di tempo. Mantenere aggiornato un intero progetto software, richiede che, sui computer del cliente, venga effettuata o una nuova installazione, oppure, una copia di file aggiornati del programma. Operazione da compiere su ogni client. Si tratta, quindi, di effettuare una copia speculare di file e cartelle da una unità, contenente file aggiornati, ad un’altra unità, solitamente “C:\”, su cui aggiornare il contenuto. Operazione effettuabile con l’ausilio del solo terminale di Windows, noto come, prompt dei comandi.

Solitamente, per effettuare questa operazione, è necessario procedere manualmente o inviare un nuovo pacchetto software aggiornato al cliente, insieme ad una procedura guidata per l’aggiornamento del programma. Come anticipato precedentemente, questa fase purtroppo, richiede del tempo. È il tempo, per chi svolge qualsiasi attività, è sempre prezioso. Perciò, in questa guida ti spiegherò come effettuare un aggiornamento software gestionale automatico, di un file eseguibile, da prompt dei comandi di Windows sfruttando un file batch opportunamente predisposto. Ma ripeto, la procedura è applicabile ad un intero progetto software contenente file e cartelle.

Leggi anche: Come riparare Windows 10 utilizzando il prompt dei comandi

1. Aggiornamento Software gestionale da prompt dei comandi

Come anticipato al paragrafo precedente, per aggiornare un programma, sarebbe ideale studiare una procedura automatizzata che copiasse il nuovo file eseguibile, nella sua cartella di destinazione sull’hard disk senza alcun intervento da parte dell’utente. Per cui una volta consegnato, il nuovo file aggiornato, su una chiavetta USB, oppure, su una unità CD-ROM, basterebbe inserire questo supporto nella porta dedicata del PC e attendere che la procedura venga avviata in automatico e aggiorni il file desiderato. Per facilitare la procedura ho dato per scontato che l’eseguibile da aggiornare risieda sull’unità “C:\” del computer.

A tal proposito ho messo a punto una procedura, memorizzata in un file batch e schedulata a intervalli di qualche secondo tramite il Task Scheduler di Windows, che effettuerà una scansione di tutte le unità del computer, tranne “C:\”, e una volta individuato il file aggiornato lo copierà nella cartella indicata nella sezione dedicata ai parametri della procedura.

Il primo passo necessario è quello di creare un file batch, cioè con estensione “.bat” vuoto, copiare e incollare i seguenti comandi all’interno del file:

cls
@echo OFF
setlocal EnableDelayedExpansion
set letters=a b d e f g h i j k l m n o p q r s t u v w x y z
set start=a
set end=z

REM ******************************
REM *** IMPOSTAZIONE PARAMETRI *** 
REM ******************************
set DirectoryEseguibileDaAggiornare = NomeDirExeDaAggiornare
set fileEseguibileAggiornato = NomefileEseguibileAggiornato.exe

set "temp=!letters:*%start%=%start%!"
for /F "delims=$" %%a in ("!temp:%end%=%end%$!") do (
   for %%b in (%%a) do (
      if Exist %%b:\%fileEseguibileAggiornato% (
         @echo ********************************************
         @echo *** AGGIORNAMENTO SOFTWARE DA UNITA' %%b ***
         @echo ********************************************

         :inizio
            TaskKill /F /IM %fileEseguibileAggiornato% /T
            del C:\%DirectoryEseguibileDaAggiornare%\%fileEseguibileAggiornato%
            if Exist C:\%DirectoryEseguibileDaAggiornare%\%fileEseguibileAggiornato% Goto inizio

         Copy %%b:\%fileEseguibileAggiornato% C:\%DirectoryEseguibileDaAggiornare% /Y

         if Exist C:\%DirectoryEseguibileDaAggiornare%\%fileEseguibileAggiornato% (
            cd\
            cd\%DirectoryEseguibileDaAggiornare%
            %fileEseguibileAggiornato%
         )
      ) 
   )
)

Dopo aver creato il file salva il contenuto al suo interno, dandogli anche un nome, e parametrizza il nome della cartella e il nome del file eseguibile, alle righe 10 e 11, presenti sull’unità “C:\” del computer. In parole povere la cartella che contiene il file eseguibile da aggiornare e il file eseguibile stesso presenti sul computer. Nota bene come alla riga 3 del codice, dove è stata inizializzata la lista contenenti le unità da scansionare, è stata volutamente omessa la lettera “C”, in quanto considerata unità da trascurare dalla scansione perché contenente l’eseguibile da aggiornare sul computer. Una volta parametrizzate queste variabili non devi fare altro che spostare questo file batch in una cartella sotto “C:\”. Nel prossimo paragrafo ti spiegherò come schedulare la sua esecuzione automatica.

2. L’utilità di pianificazione di Windows 10

Adesso hai un file batch contenente tutti i comandi necessari per scansionare automaticamente tutte le unità del computer e sostituire, nella cartella indicata nei parametri, il file eseguibile da aggiornare. Quindi, una volta inserita, ad esempio, una chiavetta USB contenente il file eseguibile aggiornato. Il task Scheduler di Windows 10, eseguirà, a intervalli prefissati di qualche secondo, il file batch che scansionerà l’unità USB, che hai inserito nel computer, chiuderà l’eseguibile da aggiornare, presente sul computer nell’unità “C:\” se aperto, e lo sostituirà con quello contenuto sulla chiavetta USB senza alcuna richiesta di intervento da parte dell’utente. Al termine della procedura i comandi contenuti all’interno del file batch riavvieranno nuovamente il file eseguibile aggiornato. Per cui l’unica operazione che dovrà effettuare l’utente è inserire l’unità con l’eseguibile aggiornato e rimuoverla ad aggiornamento ultimato.

3. Schedulare l’esecuzione automatica del file batch

Ora, vedrai come schedulare l’esecuzione del file batch utilizzando il Task Scheduler di Windows 10, chiamata anche utilità di pianificazione. Quindi, premi i tasti WIN + R, digita il comando taskschd.msc e premi invio.

aori il task scheduler di windows 10

Dopo l’esecuzione di questo comando si aprirà la finestra dello scheduler pronta per poter schedulare l’esecuzione di qualunque software lasciando a Windows 10 il totale controllo del processo di esecuzione. La finestra che ti troverai di fronte inizialmente ti darà l’impressione di essere poco user-friendly. Ma ti posso garantire che in pochissimi passaggi riuscirai a schedulare l’esecuzione di qualsiasi programma in Windows 10. Quindi, con tasto destro del mouse sulla voce Utilità di pianificazione (computer locale), seleziona la sottovoce del menu Crea attività.

aggiornamento software con il task scheduler

riempi tutti i campi della scheda Generale così come indicato in figura e procedi con l’implementazione del Task selezionando la scheda Attivazione e successivamente clicca sul pulsante Nuovo. A questo punto, come hai fatto per la scheda Generale procedi compilando i campi relativi in rosso e relativi all’attivazione dell’esecuzione del file batch come indicato in figura:

scheda attivazione dello scheduler

una volta compilati i campi come indicato clicca sul pulsante Ok e procedi con la selezione della scheda Azioni. Una volta selezionata questa scheda clicca sul pulsante Nuova… e procedi con la compilazione dei campi proposti dallo Scheduler.

task scheduler scheda azioni

Adesso, clicca sul tasto sfoglia e seleziona il file batch precedentemente salvato sul computer e che contiene i comandi per scansionare le unità del PC ed aggiornare il file eseguibile. Terminata questa fase premi il pulsante Ok.

È il momento di passare alla scheda condizioni. In questa scheda devi spuntare solo la voce Riattiva il computer per eseguire l’attività e procedi cliccando sul pulsante Ok.

task scheduler scheda condizioni

L’operazione di schedulazione dell’esecuzione del file batch tramite l’Utilità di pianificazione di Windows 10 è quasi terminata. Non ti rimane che passare alla scheda Impostazioni e assicurati di spuntare solo la casella Avvia appena possibile se un avvio pianificato non viene eseguito. Ora premi il tasto Ok e l’operazione è terminata. Per aggiornare il tuo file eseguibile non ti rimane che copiare il file eseguibile aggiornato su una chiavetta USB, inserirla nel computer e attendere l’aggiornamento automatico eseguito dallo Scheduler di Windows 10. Lo Scheduler, così come impostato, eseguire ogni minuto il file batch e scansionerà tutte le unità del computer alla ricerca del tuo eseguibile aggiornato sostituendolo a quello memorizzato sul computer nella directory da te indicata nella sezione dedicata ai parametri presente nel file batch.

Leggi anche: Liberare spazio su Windows 10 con DISM eseguito da prompt dei comandi

4. Conclusioni

La procedura descritta in questa guida e i comandi contenuti all’interno del file batch possono essere modificati per aggiornare il contenuto di intere cartelle e non solo di un file eseguibile. Infatti, basta sostituire il comando copy con il comando Robocopy per effettuare aggiornamenti del contenuto di intere directory.

Ad esempio, con questo comando: Robocopy c:\Users\Antonio\Desktop\Prova E:\ /MIR tutto il contenuto della directory denominata “prova”, e presente sul desktop dell’utente “Antonio”, sarà replicato nell’unità di destinazione “E:\”, comprese tutte le sottodirectory anche se vuote.

Il comando Robocopy effettua una vera e propria operazione di mirroring, cioè, una copia esatta di una cartella in un’altra. Per questo motivo, Robocopy, è utilizzato per pianificare anche complesse procedure di backup e ripristino dei dati. È un comando già integrato in Windows e gestito attraverso l’utilizzo di particolari opzioni e parametri speciali digitati ed eseguiti direttamente dal prompt dei comandi. In questo breve video tutorial potrai vedere come pianificare e sincronizzare un backup con il comando Robocopy. Dopo aver visto le potenzialità di Robocopy potrai personalizzare il file batch, contenuto in questa guida, per schedulare il backup dei tuoi file più importanti.

Amministratore di rete e sviluppatore. Dopo anni di esperienza nel settore, ho ideato un sistema di gestione dati MYSQL in PHP senza scrivere una sola riga di codice. Scopri di più....

x