标题: 批处理命令for+什么参数才能显示文本的指定的某一行? [打印本页]
作者: qwe274208829 时间: 2012-8-18 09:42 标题: 批处理命令for+什么参数才能显示文本的指定的某一行?
新手请教
我要用FOR+什么参数才能显示文本的指定一段文字
作者: 狗屁不通 时间: 2012-8-18 11:17
for/?
http://www.bathome.net/thread-2189-1-1.html
作者: ht河豚 时间: 2012-8-18 12:58
两种,一种开变量延迟,一种不用
line是行数变量
开变量延迟的
Code1:- @echo off
- setlocal enabledelayedexpansion
- set ok=0
- set line=1
- for /f "tokens=* delims= " %%i in (do.txt) do (
- set /a ok+=1
- if !ok!==!line! (
- ::你的命令,在本例中是echo %%i
-
- )
- )
复制代码
写到这里,好像不开变量延迟不行呵,如果你后面的代码没有用变量延迟,就用 endlocal 结束变量延迟吧
作者: ht河豚 时间: 2012-8-18 19:30
是的,findstr用for /f也可以处理,但也要开变量延迟,我觉得Code1效率高,findstr慢啊,不过还是发一下吧- @echo off
- setlocal enabledelayedexpansion
- set line=1
- for /f "tokens=1,2 delims=:" %%i in ('findstr /n .* do.txt') do (
- if %%i==!line! (
- echo %%j
- )
- )
复制代码
代码未测试
PS:楼主好勤快呵!
作者: qwe274208829 时间: 2012-8-18 22:19
哦哦
think
作者: qwe274208829 时间: 2012-8-18 22:29
回复 5# ht河豚
不是我懒,我是早上出去晚上才回来。
作者: qwe274208829 时间: 2012-8-18 23:42
折腾了个晚上才写出这个【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
作者: CrLf 时间: 2012-8-19 00:18
本帖最后由 CrLf 于 2012-8-19 00:19 编辑
- @echo off
- for /f "skip=15delims=" %%a in (1.txt)do echo 第16行为%%a&goto exitfor
- :exitfor
- pause
复制代码
作者: ht河豚 时间: 2012-8-19 09:48
回复 8# qwe274208829
我就奇怪了,怎么木有delims亦可以截取??
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |