@echo on
e @echo off
non sembrano avere alcun effetto quando vengono eseguiti all'interno di un blocco tra parentesi if
in un file batch. Ecco un semplice demo:Perché @ECHO ON/OFF non funziona all'interno di un file batch blocco IF?
@echo off
echo Test #1
if 1 == 1 (
@echo on
echo Test #2
@echo off
echo Test #3
)
@echo on
echo Test #4
L'uscita dalla esecuzione di cui sopra sulla riga di comando è:
Test # 1
Test # 2
Test # 3
C: \ mybatchfilelocation> echo test # 4
test # 4
qualcuno potrebbe spiegare questo e/o r suggerire una soluzione alternativa? (si aspettano che potrebbe probabilmente essere risolto con l'uso abbondante di goto
ed etichette ma preferirebbero continuare ad utilizzare parentesi, se blocchi se possibile ...)
Penso che sia perché lo stato corrente "echo on/off" ha effetto solo sull'intera linea o blocco; se vuoi controllarlo individualmente per ciascun comando, imposta "echo on" e precedi ogni comando che vuoi nascondere con '@'; – aschipfl
Grazie, ma sfortunatamente sembra che echo on non esegua comandi echi tra parentesi (vedi la mia risposta appena aggiunta sotto). –
Non capisco, entrambi echo's nella tua risposta _are_ 'echo'ed; metti '@' prima di uno degli 'echo's per nasconderlo; metti '@' davanti a '(' per nascondere tutto dopo 'if' ... – aschipfl