Ciao bobo 779256.
In se stessa, la riga da me postata ha come unica utilità il fatto che, per farla funzionare, occorre capire alcune cose sul funzionamento del DOS, ed il mio scopo non è visualizzare ciò che la suddetta riga visualizzerebbe se funzionasse secondo la mia logica, ma capire quale logica c'è dietro il funzionamento di uno script DOS nel caso specifico di istruzioni scritte sulla stessa riga.
Nel caso specifico, se io avessi scritto uno script dedicando una singola riga ad ogni singola istruzione della riga DOS per la quale ho aperto il post, otterrei che:
Codice:
set /a N1=5 > nul 2>&1 & REM La variabile numerica N1 ora contiene il numero 5
echo N1=%N1% & REM Questa istruzione visualizzerebbe il contenuto della variabile N1 in questo preciso istante (5)
set /a N1=%N1%+%N1% > nul 2>&1 & REM Ora la variabile numerica N1 ora conterrebbe il doppio di quanto conteneva prima dell'esecuzione di questo comando
echo N1=%N1% & REM Questa istruzione visualizzerebbe il contenuto della variabile N1 in questo preciso istante (10)
REM Alla fine dello script, la variabile N1 conterrebbe l'ultimo valore impostato, che in questo caso è 10
A rigore di logica, il comando
Codice:
set /a N1=5 > nul 2>&1 & call echo N1=%N1% & call set /a N1=%N1%+%N1% > nul 2>&1 & call echo N1=%N1%
dovrebbe fare la stessa cosa ma, poiché l'interprete DOS prima prende in considerazione la singola riga, poi trasforma ogni
variabile contenuta nella singola riga nel
suo contenuto, dopo di ché esegue la singola riga, infine passa alla riga successiva, ciò non avviene.
A questo punto, mi sono posto la domanda "Se volessi scrivere su un'unica riga i comandi DOS che qui ho riportato 'in cascata' in modo da ottenere il medesimo effetto, come dovrei fare?"
Ed ora sto cercando la risposta a quella domanda.
La tua risposta non mi va bene perché dopo l'esecuzione dei comandi 'in cascata' la variabile N1 conterrebbe 10, mentre dopo l'esecuzione della riga DOS da te proposta, la variabile N1 sarebbe vuota.
Preciso che la risposta alla mia domanda avrebbe come unico risultato di arricchire la mia cultura personale sull'argomento; per il futuro, potrebbe essere inutile, o potrebbe essere di importanza vitale... in altre parole: "impara l'arte e mettila da parte".