Por fin, volví a hacer el código desde 0, aqui esta la versión final:
for /f "tokens=1"
%%_
in (char.txt
) do set "char=
%%_"
:code
for /f "tokens=1* delims=
%char%"
%%a in ('
set name
^| findstr /r /i "
^Name"'
) do ( )
echo Variable asignada
%%algo%% = {
!algo!}
Salida:
C:\>este
Name : &cmd
Has escrito : &cmd
Variable asignada %algo% = {&cmd}
C:\>este
Name : ! leo !
Has escrito : ! leo !
Variable asignada %algo% = {! leo !}
C:\>este
Name : !!
Has escrito : !!
Variable asignada %algo% = {!!}
C:\>este
Name : &&
Has escrito : &&
Variable asignada %algo% = {&&}
C:\>este
Name : ||
Has escrito : ||
Variable asignada %algo% = {||}
C:\>este
Name : |calc
Has escrito : |calc
Variable asignada %algo% = {|calc}
C:\>este
Name : <
Has escrito : <
Variable asignada %algo% = {<}
C:\>este
Name : > leo.txt
Has escrito : > leo.txt
Variable asignada %algo% = {> leo.txt}
C:\>este
Name : %homepath%
Has escrito : %homepath%
Variable asignada %algo% = {%homepath%}
C:\>este
Name : &goto:eof
Has escrito : &goto:eof
Variable asignada %algo% = {&goto:eof}
C:\>^goto:eof
C:\>este
Name : ^^
Has escrito : ^^
Variable asignada %algo% = {^^}
C:\>
Name : |!""'\<<>><>&cmd&calc|find /i "lkasd"
Has escrito : |!""'\<<>><>&cmd&calc|find /i "lkasd"
Variable asignada %algo% = {|!""'\<<>><>&cmd&calc|find /i "lkasd"}
Cualquier error, haganlo saber.
Saludos.