中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-19 10:50
47,814 主题排行 / 349,908 发帖 / 今日 0 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » [新问题]纯dos输出文本指定行
可打印版本  3,143 / 15
第1楼 cocobi 发表于 2008-09-12 13:32
初级用户 发帖 13 积分 30
[新问题]纯dos输出文本指定行
纯dos下如何输出文本文档的指定行.或读取指定行作为参数.或类似功能.
纯dos的for命令的功能还是太弱了.

[ Last edited by cocobi on 2008-9-22 at 10:04 PM ]
第2楼 DOSforever 发表于 2008-09-12 14:35
金牌会员 发帖 2,239 积分 4,639
强弱在于你用什么。
你看一下 4DOS 的 @line 变量函数就可以了。
第3楼 cocobi 发表于 2008-09-12 15:35
初级用户 发帖 13 积分 30
纯dos下的for不支持 /f参数啊.
@line? 可以给个范例吗?基础不是一般的差的说
我问这个主要是想实现dos下删除win的用户目录下的临时文件.
思路是这样.列出docume~1下的文件夹(用户名作文件夹名)输出到一个文件.
dir %windrv%\docume~1\ /b /ad >winuser.lst
再通过逐行读取这个winuser.lst并把读取的内容设定为一个自定义变量winuser*
再执行
deltree "%windrv%\docume~1\%winuser1%\Local Settings\temp"
deltree "%windrv%\docume~1\%winuser1%\Local Settings\tempor~1"
第4楼 DOSforever 发表于 2008-09-12 16:06
金牌会员 发帖 2,239 积分 4,639
以下给出 @line 的具体帮助,你可能不需要用到

4DOS Help Topic: @LINE


@LINE: Returns line n from the specified file. The first line
in the file is numbered 0. "**EOF**" is returned for all line numbers
beyond the end of the file.

@LINE works with files having lines of no more than 511 characters; longer
lines will not be counted accurately.

The @LINE function must read each line of the file to find the line you
request, and will therefore cause significant delays if used in a long loop
or on a large file. For a more effective method of processing each line of
a file in sequence use the FOR command, or @FILEOPEN and a sequence of
@FILEREADs.

You can retrieve input from standard input if you specify CON as the
filename. If you are redirecting input to @LINE using this feature, you
must use command grouping or the redirection will not work properly (you can
pipe to @LINE without a command group; this restriction applies only to
input redirection). For example:

(echo %@line) < myfile.dat


windrv 是什么环境变量?你自己定义的?

按照你要达成的目的,可以用 for ,当然是要用 4DOS 下的 for

for /a:d/h %f in (%windrv%\docume~1\*.*) deltree "%f\locals~1\temp"

[ Last edited by DOSforever on 2008-9-12 at 04:09 PM ]
第5楼 cocobi 发表于 2008-09-12 16:46
初级用户 发帖 13 积分 30

for /a:d/h %f in (%windrv%\docume~1\*.*) deltree "%f\locals~1\temp"

这个强悍.
看了下4dos 最新版7.5? 可惜是个exe for win9x
按照下面说法好像只要一个4dos.com就可以了

可以用4DOS来代替DOS自带的COMMAND.COM,在CONFIG.SYS里面用
shell=C:\4DOS\4DOS.COM @C:\4DOS\4DOS.INI /P,
在AutoExec.Bat里面加
SET COMSPEC=C:\4DOS\4DOS.COM @C:\4DOS\4DOS.INI /P

看情况改路径就可以对吗?
ps:帮忙上传一个4dos.com.谢谢
第6楼 DOSforever 发表于 2008-09-12 17:06
金牌会员 发帖 2,239 积分 4,639
http://cn-dos.net/forum/viewthread.php?tid=20079

config.sys 里的路径可以随便你写,autoexec.bat 里的那句可以不要。
第7楼 cocobi 发表于 2008-09-12 17:21
初级用户 发帖 13 积分 30
确实可以解压得到4dos.com,好大250k+
确定只需要4dos.com这个文件就可以了吗?OPTION.EXE这个文件可以不要,有什么用没有?
另外批处理编写4dos.com的for的参数因该是%%var吧
for /a:d/h %f in (%windrv%\docume~1\*.*) deltree "%f\locals~1\temp"
应该是
for /a:d/h %%f in (%windrv%\docume~1\*) deltree /y "%%f\locals~1\temp"
第8楼 DOSforever 发表于 2008-09-12 17:34
金牌会员 发帖 2,239 积分 4,639
OPTION.EXE 是让你设置 4DOS 的初始化文件 4DOS.INI 用的,只不过 GUI 看起来方便一点,你也可以手工修改 4DOS.INI 。
如果你不需要帮助的话只要 4DOS.COM 和 4DOS.INI 这两个文件就可以了。如果要用到 keystack 内部命令,还要有 KSTACK.COM 这个文件,并且要事先 TSR 。
4DOS 的 batch 中 for 命令对 %f 的要求不是很严格,%%f 和 %f 都是合法的。

[ Last edited by DOSforever on 2008-9-12 at 05:47 PM ]
第9楼 cocobi 发表于 2008-09-12 17:56
初级用户 发帖 13 积分 30
8
keystack? echo.| echo y| 够用了吧.
ps:论坛的命令行界面很有意思.正尝试用它浏览和回帖.
第10楼 DOSforever 发表于 2008-09-12 18:06
金牌会员 发帖 2,239 积分 4,639
是否够用看你自己的用途,既然你看了 keystack ,我想你一定明白是否它的功能都可以用管道来解决。
第11楼 cocobi 发表于 2008-09-12 18:16
初级用户 发帖 13 积分 30
谢谢你耐心解答和帮助.看了下4dos的说明.好强大.学习中.
第12楼 DOSforever 发表于 2008-09-12 18:28
金牌会员 发帖 2,239 积分 4,639
不用谢,很少有你这样识宝的人。许多人我给他他还不要,宁愿绕来绕去绕个大圈子,“总算”把问题解决了。我看他们真是累哦!

另外我建议你修改下帖子的标题,DOS 就是 DOS ,没有纯不纯的,要么就是,要么就不是。就像没有什么纯不纯的 Windows ,纯不纯的 UNIX 一样。
第13楼 lianjiang2004 发表于 2008-09-12 18:51
金牌会员 发帖 1,884 积分 3,946
个人理解, 因为很多人把cmd也叫dos,所以写成纯dos,至少不会有人再拿cmd脚本来说事了,可有效避免误解,呵呵。
第14楼 DOSforever 发表于 2008-09-12 19:26
金牌会员 发帖 2,239 积分 4,639
正因为如此,所以我们更不应该跟着将错就错。既然你说了是 DOS 问题,那我就只考虑 DOS 环境,要么你就明说是 Windows 命令行或 CMD 环境。一定要把他们这些含糊不清观念给纠正过来,而不是我们迁就着跟着他们跑。
况且,论坛已经有了专门讨论其它命令行环境的版块,和两者都混在一起的批处理版块(基本上,现在的批处理版块讨论的都是 Windows 下的批处理)。这里的版块明确说了是“DOS疑难解答 & 问题讨论”。
第15楼 lianjiang2004 发表于 2008-09-12 20:35
金牌会员 发帖 1,884 积分 3,946
上次就碰到一个,问dos下处理的,结果有人写了cmd的脚本,我当时还说,似乎不是楼主想要的,结果还是我理解错了,原来就是要cmd的,呵呵。
所以强调dos,是很有必要的,因为二者不分的人太多了,没办法。呵呵。
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023