23Andrea
06-04-2020, 16:18
Ciao.
In un ciclo FOR, un comando ECHO restituisce le righe di un file di testo tab-delimited, che contiene all'inizio di ogni riga un carattere ">" o "<".
Se il comando ECHO č seguito da una pipe, si verifica un problema di escaping che puņ essere risolto con la sequenza "^^%%G":
file di testo Test.txt:
> pippo pluto paperino
< tizio caio sempronio
@FOR /f "tokens=1,* delims= " %%G IN (Test.txt) DO @(
ECHO ^^%%G %%H|FINDSTR .
)
@PAUSE
EXIT
Ma io ho bisogno di utilizzare il comando CALL ECHO, per ottenere l'espansione ritardata delle variabili senza utilizzare i caratteri "!", quindi lo script diventa:
@FOR /f "tokens=1,* delims= " %%G IN (Test.txt) DO @(
CALL ECHO ^^%%G %%H|FINDSTR .
)
@PAUSE
EXIT
che perņ provoca il troncamento dei primi due campi delle righe:
pluto paperino
caio sempronio
Esiste una sequenza di caratteri che impedisca l'escaping anche in questo caso?
Grazie.
In un ciclo FOR, un comando ECHO restituisce le righe di un file di testo tab-delimited, che contiene all'inizio di ogni riga un carattere ">" o "<".
Se il comando ECHO č seguito da una pipe, si verifica un problema di escaping che puņ essere risolto con la sequenza "^^%%G":
file di testo Test.txt:
> pippo pluto paperino
< tizio caio sempronio
@FOR /f "tokens=1,* delims= " %%G IN (Test.txt) DO @(
ECHO ^^%%G %%H|FINDSTR .
)
@PAUSE
EXIT
Ma io ho bisogno di utilizzare il comando CALL ECHO, per ottenere l'espansione ritardata delle variabili senza utilizzare i caratteri "!", quindi lo script diventa:
@FOR /f "tokens=1,* delims= " %%G IN (Test.txt) DO @(
CALL ECHO ^^%%G %%H|FINDSTR .
)
@PAUSE
EXIT
che perņ provoca il troncamento dei primi due campi delle righe:
pluto paperino
caio sempronio
Esiste una sequenza di caratteri che impedisca l'escaping anche in questo caso?
Grazie.