找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28015|回复: 2

[文件操作] 当for中的["options"] 为变量时,该如何使用?

[复制链接]
发表于 2009-7-25 13:06:24 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-3-29 21:18 编辑

小弟希望能写个查找批处理当查找某字串后
显示含有某字串的下一行内容
例如   123.txt

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
复制代码
查找 3后 显示出4
查找 2后 显示出3
查找 5后 显示空值

以下式小弟代码

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. echo Search for What String ?
  4. set /p "str="
  5. echo.

  6. for /f "tokens=1-2 delims= " %%a in ('f 123.txt /f:"%str%" -s -o:Ftl') do (

  7. for /f "skip=%%b delims=" %%c in ('type "%%a"') do (
  8. echo %%c
  9. goto :outloop
  10.   )

  11. )

  12. :outloop
  13. pause
复制代码
在 skip=%%b 这里错误,他说不能这样用...


ps.本程序中使用了一个名为f.exe 的第3方搜索软件

  1. f 123.txt /f:"%str%" -s -o:Ftl
复制代码
将会输出 ∶ 查找符合完整路径档案名称 {tab} 字串所在行数
发表于 2009-7-25 13:43:54 | 显示全部楼层
  1. @echo off
  2. echo Search for What String ?
  3. set /p "str="
  4. echo.
  5. for /f "delims=:" %%a in ('findstr /in "%str%" 123.txt') do set n=%%a
  6. if defined n (
  7.    for /f "skip=%n% usebackq delims=" %%c in ("123.txt") do set "v=%%c"&goto :outloop
  8. ) else echo 搜索失败
  9. :outloop
  10. if defined v (echo %v%)else echo "空"
  11. pause
复制代码
 楼主| 发表于 2009-7-25 15:28:11 | 显示全部楼层
看来是 for 里面又有for
就不能让["options"]使用变数

可是小弟目前想完成的脚本
目的是从 一个目录包含子目录和当中所有文件
寻找某字串后 并输出下一行...
然后集中输出到一个文件里

我想这样说应该很多人不懂我的意思吧.....

因为这个我目前只能想到用2个for完成
试试看能不能用call 把for跳出来执行

等等在试试看

不过还是感谢楼上大大的解答

[ 本帖最后由 strong12345 于 2009-7-25 16:14 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 11:24 , Processed in 0.017324 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表