Я хочу реализовать OutTo.cmd, который может достигать:
echo msg | OutTo.cmd var
echo %var%
msg
мой код в OutTo.cmd:
set /p %1=
@REM For check
echo %var%
, когда я запускаю echo msg | OutTo.cmd var
, консоль будет отображать
msg
, что означает, что "msg" успешно сохраняется в var во время работы OutTo.cmd
, но затем я запускаю echo %var%
, на консоли ничего не отображается, что означает, что var не определен, после OutTo.cmd
Но если я запусту OutTo.cmd, как показано ниже:
OutTo.cmd var
и введите:
msg
после завершения OutTo.cmd, значение var останется:
echo %var%
display
msg
, я знаю, что самый простой способ:
echo msg > tmp
set /p newvar=<tmp
Так что мне просто интересно, почему пакет останется переменным, если я вызову если нет, если я перенаправлю вывод на него?