中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-24 01:51
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]最大限度原样输出含特殊字符的指定行内容 精华I 查看 19,303 回复 32
31 发表于 2008-12-23 01:30 ·  中国 广东 深圳 电信
初级用户
积分 48
发帖 20
注册 2005-10-14 15:16
20年会员
UID 43494
性别 男
状态 离线
Originally posted by namejm at 2007-5-17 21:14:
  最完美的代码如下(来自23楼bjsh的代码,本人仅作少量改动):

  代码3:
CODE:
--------------------------------------------------------------------------------

@echo off
cd.>output.txt
for /f "delims=" %%i in ('findstr /n .* test.txt') do (
set "var=%%i"
setlocal enabledelayedexpansion
set var=!var:*:=!
(echo.!var!)>>output.txt
endlocal
)
start output.txt


学习了,运行时报错,不过输出的txt却是正确的!

[ Last edited by different on 2008-12-23 at 01:43 ]
32 发表于 2009-12-03 21:14 ·  中国 北京 联通
初级用户
积分 39
发帖 27
注册 2007-09-10 17:46
18年会员
UID 97038
性别 男
状态 离线
精彩呀,我想补充点,不知道对不对
findstr /n .* test.txt是要找到所有的行,并在其前加上行号如“1:”
所以在后面的循环中才会出现这样的一句:
set var=!var:*:=! 来删掉如“1:”这样的一批行号
如有不对之处请指正!
33 发表于 2009-12-09 19:03 ·  中国 重庆 电信
初级用户
积分 20
发帖 11
注册 2009-12-05 17:26
16年会员
UID 155977
性别 男
状态 离线
两个字, 佩服, 23 楼, 日哦。。。
论坛跳转: