Vorrei eseguire un cmd.exe che valuterà le variabili d'ambiente al momento della chiamata invece che quando analizza il comando. Se imposto BASE su 2 e lo faccio eco, dovrei vedere il numero 2, sebbene l'esecuzione di questo script non imposti correttamente la base.
Comportamento atteso:
C:Usersschristo>cmd.exe /X /C "set BASE=2 && echo %BASE% && pause"
2
Press any key to continue . . .
Comportamento reale:
C:Usersschristo>cmd.exe /X /C "set BASE=2 && echo %BASE% && pause"
%BASE%
Press any key to continue . . .
risposte:
5 per risposta № 1Questo dovrebbe funzionare per te:
cmd.exe /X /V:ON /C "set BASE=2&&echo !BASE!&&pause"
/V:ON
abilita l'espansione ritardata delle variabili, che è ciò di cui hai bisogno qui. Ordine degli interruttori (/V:ON /C
) è importante.