windows命令将变量设置为grep输出

时间:2015-04-16 20:23:34

标签: windows shell

状态:Noobie 所需:在Windows命令中设置变量为grep输出

我做了一些环顾四周,显然以下策略应该有效。但是,虽然第一个grep输出回显到屏幕给出正确的输出20 16 21 16 16,因为文件patterns.txt是循环的,变量myvar被报告为始终为16,即使我在每个循环中删除tmpfile。

ECHO OFF
For /f %%a in (patterns.txt) do (
  grep -E --count %%a Winter2015.tex 
  grep -E --count %%a Winter2015.tex > tmpfile
  set /p myvar= < tmpfile
  del tmpfile
  echo %myvar%
) 

我错过了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

您必须通过添加以下内容来延迟变量的扩展:

setlocal enabledelayedexpansion

使用!围绕你的变量而不是%:

echo !myvar!

请参阅this