为什么批处理文件不能保持可变,如果我重定向到它而不是调用它的话

问题描述 投票:0回答:1

我想实现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”在OutTo.cmd运行期间成功保存到var中>

但是我跑了echo %var%,控制台不显示任何内容,这表示在OutTo.cmd之后未定义var

但是如果我按如下方式运行OutTo.cmd:

OutTo.cmd var

并输入:

msg

OutTo.cmd完成后,var的值将保持不变:

echo %var%

显示

msg

我知道最简单的方法是:

echo msg > tmp
set /p newvar=<tmp

所以我只是很好奇,如果我称它为什么批处理将保持可变但如果我将输出重定向到它,则不可以?

我想实现OutTo.cmd,它可以实现:echo msg | OutTo.cmd var echo%var%msg我在OutTo.cmd中的代码:set / p%1 = @REM运行echo msg时检查echo%var%| OutTo.cmd var,控制台...

batch-file variables pipeline io-redirection
1个回答
0
投票

在回显和要分配给变量的内容之间使用括号。

© www.soinside.com 2019 - 2024. All rights reserved.