Windows批处理 - ECHO正在改变%ERRORLEVEL%

时间:2016-06-16 15:08:37

标签: windows batch-file echo errorlevel

我有以下.bat代码段

echo about to start echoing, Errorlevel=%Errorlevel%

echo. >> ../time.txt

echo Just echod a new line into time.txt, Errorlevel=%Errorlevel%

echo | set/p=start=%time%, >> ../time.txt    

echo about to start with emake, Errorlevel=%ERRORLEVEL%

输出结果为:

about to start echoing, Errorlevel=0
Just echod a new line into time.txt, Errorlevel=0
about to start with emake, Errorlevel=1

为什么行echo | set/p=start=%time%, >> ../time.txt会更改%ERRORLVEL%

1 个答案:

答案 0 :(得分:3)

该行将ERRORLEVEL设置为1,因为SET /P失败(将ERRORLEVEL设置为1),只要它无法设置值,并且set/p=start=%time%,将永远不会设置值。第一个=之后的所有内容都被认为是提示,因此没有变量,命令将始终"失败"。

我不知道你试图用这条线做什么,所以我无法给你一个解决方案。但有一点你应该注意 - SET /P is useless for setting variables if used within a pipe