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

批处理命令for+什么参数才能显示文本的指定的某一行?

[复制链接]
发表于 2012-8-18 09:42:52 | 显示全部楼层 |阅读模式
新手请教
      我要用FOR+什么参数才能显示文本的指定一段文字
发表于 2012-8-18 11:17:27 | 显示全部楼层
发表于 2012-8-18 12:58:52 | 显示全部楼层
两种,一种开变量延迟,一种不用
line是行数变量
开变量延迟的
Code1:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set ok=0
  4. set line=1
  5. for /f "tokens=* delims= " %%i in (do.txt) do (
  6.   set /a ok+=1
  7.   if !ok!==!line! (
  8.     ::你的命令,在本例中是echo %%i
  9.    
  10.   )
  11. )
复制代码
写到这里,好像不开变量延迟不行呵,如果你后面的代码没有用变量延迟,就用 endlocal 结束变量延迟吧
发表于 2012-8-18 19:30:38 | 显示全部楼层
是的,findstr用for /f也可以处理,但也要开变量延迟,我觉得Code1效率高,findstr慢啊,不过还是发一下吧
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set line=1
  4. for /f "tokens=1,2 delims=:" %%i in ('findstr /n .* do.txt') do (
  5.   if %%i==!line! (
  6.     echo %%j
  7.   )
  8. )
复制代码
代码未测试
PS:楼主好勤快呵!

评分

参与人数 1技术 +1 收起 理由
qwe274208829 + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-8-18 22:19:05 | 显示全部楼层
哦哦
  think
 楼主| 发表于 2012-8-18 22:29:44 | 显示全部楼层
回复 5# ht河豚


    不是我懒,我是早上出去晚上才回来。
 楼主| 发表于 2012-8-18 23:42:35 | 显示全部楼层
折腾了个晚上才写出这个【ip地址】 给大家分享下:
@echo off&setlocal enabledelayedexpansion
ipconfig>ip.txt
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
echo %ip%
pause
发表于 2012-8-19 00:18:28 | 显示全部楼层
本帖最后由 CrLf 于 2012-8-19 00:19 编辑
  1. @echo off
  2. for /f "skip=15delims=" %%a in (1.txt)do echo 第16行为%%a&goto exitfor
  3. :exitfor
  4. pause
复制代码
发表于 2012-8-19 09:48:00 | 显示全部楼层
回复 8# qwe274208829


    我就奇怪了,怎么木有delims亦可以截取??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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