【发布时间】:2021-07-08 03:45:34
【问题描述】:
我刚开始批量编程。 我尝试在 .bat 文件中执行以下代码,也直接在 CMD 中执行。 无论哪种情况,我都会收到一个空格。
ECHO My name is agent Smith | SET /P Name="What is your name?"
ECHO Result is %Name%
A 在一本关于批处理编程的书中找到了这段代码,但不起作用。
在某处我读到 echo 在不同的上下文中, 而 SET /P 只接受用户输入的内容。
【问题讨论】:
-
管道为任一侧启动一个新的
cmd.exe实例,因此托管实例中的变量不会改变:echo Test| (set /P VAR=& set VAR)将返回VAR=Test,但echo Test| set /P VAR=& set VAR不会(鉴于VAR最初没有设置)... -
N. B.: 你介意告诉我们你在说什么书吗?
-
我试过像你写的那样:
ECHO My name is agent Smith | (SET /P Name= & SET Name )直接在 cmd 中得到我:Name=My name is agent Smith但在文件中它没有,我从 cmd 运行文件,如 c:\User>pipe-1 .bat -
本书是:Batchography:批处理文件编程的艺术
-
代码是直接在命令提示符中运行还是在批处理文件中运行应该没有区别,管道的行为是一样的……
标签: batch-file