Buen método Leo, yo ya había hecho uno, te desafío a que intentes asignar a una variable el contenido de %%_, si así lo haces, ya no hay filtración.
:code
set /p "name=Teclee su nombre :
" for /f "tokens=2 delims=="
%%_
in ('
set name'
) do ( )
:_123456789:
echo Variable asignada
%%algo%% :
!algo!
Salida :
Teclee su nombre : &cmd
Has escrito : &cmd
Variable asignada %algo% : &cmd
Teclee su nombre : &echo on
Has escrito : &echo on
Variable asignada %algo% : &echo on
Teclee su nombre : < > &cmd
Has escrito : < > &cmd
Variable asignada %algo% : < > &cmd
Teclee su nombre : |calc
Has escrito : |calc
Variable asignada %algo% : |calc
Teclee su nombre : |cmd
Has escrito : |cmd
Variable asignada %algo% : |cmd
Teclee su nombre : set|more
Has escrito : set|more
Variable asignada %algo% : set|more
Teclee su nombre : &goto:eof
Has escrito : &goto:eof
Variable asignada %algo% : &goto:eof
Teclee su nombre : &goto:eof^
Has escrito : &goto:eof^
Variable asignada %algo% : &goto:eof^
Teclee su nombre : %homepath%
Has escrito : %homepath%
Variable asignada %algo% : %homepath%
Teclee su nombre : ^CTeclee su nombre :
Teclee su nombre : ^C¿Desea terminar el trabajo por lotes (S/N)?