窗口 – 为什么这段代码说回声关闭?

前端之家收集整理的这篇文章主要介绍了窗口 – 为什么这段代码说回声关闭?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这段代码有什么问题?说ECHO是关闭的.
@ECHO off
set /p pattern=Enter id:
findstr %pattern% .\a.txt > result
if %errorlevel%==0 (
set var2= <result
echo %var2%
set var1=%var2:~5,3%
echo %var1% > test.txt
echo %var1%
) else (
echo error
)
del result
pause

任何帮助是赞赏.

如Laurent所说,这不是ECHO的问题,这是您的代码的问题.

在批处理文件中,块被执行之前被解析完毕.
解析所有百分比扩展将完成,所以似乎您的变量在块内不能更改.

但是由于延迟扩展存在延迟,延迟扩展在执行时不会在分析块时进行评估.

必须启用,默认情况下延迟扩展被禁用.

@ECHO off
setlocal EnableDelayedExpansion
set /p pattern=Enter id:
findstr %pattern% .\a.txt > result
if %errorlevel%==0 (
  set var2= <result
  echo(!var2!
  set var1=!var2:~5,3!
  echo(!var1! > test.txt
  echo(!var1!
) else (
  echo error
)
del result

我在这里使用构造回波(而不是回声),因为这将确保回显一个空行,即使变量是空的.

猜你在找的Windows相关文章