[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理for语句怎样把findstr的结果赋值给变量

bathome.txt文件中内容:
c:\abc
c:\def

for %%x in ('findstr /i "bathome" "C:\Documents and Settings\bathome.txt"') do set y=%%x

执行结果却是:第一步变量y获得的值是findstr,第二步变量y获得的值是/i

for语句把那个in后面括号里的内容看成一个字符串了

我想要的结果是:当在bathome.txt中查找到abc字符串时,把包含abc的哪一行字符串赋值给变量y

谢谢!

[ 本帖最后由 hanzinu 于 2009-12-27 19:56 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

只输出第一个找到的结果, 之后就终止搜索 的代码
  1. @echo off&setlocal enabledelayedexpansion&cls
  2. for /f %%x in ('findstr /i /c:"abc" "C:\Documents and Settings\bathome.txt"') do (set y=%%x)&(echo {y}={!y!})&goto endSch
  3. :endSch
  4. pause
复制代码
1

评分人数

TOP

回复 2楼 的帖子

谢谢了啊,已解决!怪我不明白什么时候该用/f参数。

TOP

返回列表