I wanna implementate OutTo.cmd which can achieve:
echo msg | OutTo.cmd var
echo %var%
msg
my code in OutTo.cmd:
set /p %1=
@REM For check
echo %var%
when I run
echo msg | OutTo.cmd var,
Console would display
msg
which means "msg" save into var successfully during OutTo.cmd running
but then I run
echo %var%, console display nothing, which means var is not defined, after OutTo.cmd
But if I run OutTo.cmd as below:
OutTo.cmd var
and type in:
msg
after OutTo.cmd finished, var's value would remain:
echo %var%
display
msg
will, I know the easiest way is:
echo msg > tmp
set /p newvar=<tmp
So I just curious about, why batch would remain variable if I call it but not if I redirect output to it?