中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 23:29
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 借namejm大哥的原码写的文件阅读器 查看 755 回复 9
楼 主 借namejm大哥的原码写的文件阅读器 发表于 2008-03-31 16:08 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
目的只是为了方便大家:
===============================================
己解决路径或文件名有空格的问题(见10楼分析)
@echo off&color 9f&mode con lines=15
title txt/bat文件阅读器
cls
echo.&echo.&echo.&echo.&echo.
echo txt\bat文件阅读器
ping /n 2 127.1 >nul
cls
color 90
echo.&echo.&echo.&echo.&echo.
echo THE CODE IS FOR NAMEJM AND MADE BY ZW19750516
ping /n 4 127.1 >nul&color 9f
:begin
cls
echo.&echo.&echo.&echo.&echo.
set a=1
set /p a=请将要阅读的txt或bat文件拖放到这里:
cls
echo.&echo.&echo.&echo.&echo.
if "%a%"=="1" echo       没有发现要阅读的文件,请返回正确操作。&ping /n 3 127.1 >nul&goto begin
cls
for /f "delims=" %%i in ('findstr /n .* "%a%"') do (
set "str=%%i"
setlocal enabledelayedexpansion
set str=!str:*:=!
call :pickup
endlocal
)
cls
echo.&echo.&echo.&echo.&echo.
echo      阅读完毕,请按任意键退出。
pause >nul
goto :eof
:pickup
ping -n 1 127.1>nul
if defined str (
set /p= !str:~0,1!<nul
set str=!str:~1!
goto pickup
)
echo.
goto :eof


[ Last edited by zw19750516 on 2008-4-1 at 01:58 AM ]
批处理之家新域名:www.bathome.net
2 发表于 2008-03-31 16:38 ·  中国 黑龙江 大庆 大庆中基石油通信建设有限公司
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
怎么用呢?
3 发表于 2008-03-31 16:42 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by tempuser at 2008-3-31 16:38:
怎么用呢?

复制一楼的码存为bat文件双击就知道了
批处理之家新域名:www.bathome.net
4 发表于 2008-03-31 16:50 ·  中国 江苏 苏州 电信
初级用户
★★
积分 120
发帖 60
注册 2007-10-26 22:42
18年会员
UID 100889
性别 男
状态 离线
:begin
cls
echo.&echo.&echo.&echo.&echo.
set a=1
set /p a=请将要总阅读的txt或bat文件拖放到这里:
cls
echo.&echo.&echo.&echo.&echo.
if "%a%"=="1" echo       没有发现要阅读的文件,请返回正确操作。
ping /n 3 127.1 >nul&goto begin


有死循环 :(
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
bat-zw +4 2008-03-31 18:35
5 发表于 2008-03-31 17:02 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by faultcode at 2008-3-31 16:50:
:begin
cls
echo.&echo.&echo.&echo.&echo.
set a=1
set /p a=请将要总阅读的txt或bat文件拖放到这里:
cls
echo.&echo.&echo.&echo.&echo.
if "%a ...

对不起是本人出的错,本来是测试了才发的,但在编辑时为了版面好看,将ping /n 2 127.1 >nul&goto beginp这句放到了下行导致了死循环(当时不记得这是循环了),已做了修改,也谢谢兄弟的测试,非常感谢!!!

[ Last edited by zw19750516 on 2008-3-31 at 06:35 PM ]
批处理之家新域名:www.bathome.net
6 请大家都来帮助测试: 发表于 2008-03-31 18:47 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
我现在发现了在阅读名称字符有空格的文件出现问题,正在改进中。。。。。。。。。。。。
===================================
问题己解决并已修改,请大家放心使用了。

[ Last edited by zw19750516 on 2008-4-1 at 02:06 AM ]
批处理之家新域名:www.bathome.net
7 谁能解决我上面的问题啊: 发表于 2008-04-01 00:37 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
我想了好久都没想到解决办法,在论坛也搜了很多次了,请大家帮忙啊!
批处理之家新域名:www.bathome.net
8 发表于 2008-04-01 00:42 ·  中国 河北 保定 移动
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
用for /f "usebackq delims=" %%i in (`findstr .* "%a%"`) ...
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
9 发表于 2008-04-01 00:46 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by Climbing at 2008-4-1 00:42:
用for /f "usebackq delims=" %%i in (`findstr .* "%a%"`) ...

不行啊,这样只会读了拖入的文件名,而不会读文件内容了。:(
批处理之家新域名:www.bathome.net
10 晕,原来如此容易: 发表于 2008-04-01 02:05 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
 原来for语句在遇到路径和文件名中含有空格的时候只要用双引号将完整路径引起就可以解决不能读到路径的问题。
 在本批处理中则只要在%a%上加上双引号变成"%a%"就可以解决原来不能阅读路径和文件名中有空格的问题了。
 同时欢迎大家测试,发现了问题告诉我,我会尽自己能力来完善。
 namejm那段逐行逐字读取文本内容的代码太漂亮了,我也是想利用它为大家提供下便利了,不管怎么说,出发点绝无沾大哥光的意思。

[ Last edited by zw19750516 on 2008-4-1 at 02:10 AM ]
批处理之家新域名:www.bathome.net
论坛跳转: