中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 借namejm大哥的原码写的文件阅读器
作者:
标题: 借namejm大哥的原码写的文件阅读器 上一主题 | 下一主题
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『楼 主』:  借namejm大哥的原码写的文件阅读器

目的只是为了方便大家:
===============================================
己解决路径或文件名有空格的问题(见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
2008-3-31 16:08
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 2 楼』:  

怎么用呢?

2008-3-31 16:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by tempuser at 2008-3-31 16:38:
怎么用呢?

复制一楼的码存为bat文件双击就知道了



批处理之家新域名:www.bathome.net
2008-3-31 16:42
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
faultcode
初级用户





积分 120
发帖 60
注册 2007-10-26
状态 离线
『第 4 楼』:  

: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


有死循环 :(

   此帖被 +4 点积分        点击查看详情   
评分人:【 bat-zw 分数: +4  时间:2008-3-31 18:35


2008-3-31 16:50
查看资料  发送邮件  发短消息 网志  OICQ (582954699)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  



  Quote:
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
2008-3-31 17:02
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 6 楼』:  请大家都来帮助测试:

我现在发现了在阅读名称字符有空格的文件出现问题,正在改进中。。。。。。。。。。。。
===================================
问题己解决并已修改,请大家放心使用了。

[ Last edited by zw19750516 on 2008-4-1 at 02:06 AM ]



批处理之家新域名:www.bathome.net
2008-3-31 18:47
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 7 楼』:  谁能解决我上面的问题啊:

我想了好久都没想到解决办法,在论坛也搜了很多次了,请大家帮忙啊!



批处理之家新域名:www.bathome.net
2008-4-1 00:37
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 8 楼』:  

用for /f "usebackq delims=" %%i in (`findstr .* "%a%"`) ...



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-4-1 00:42
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by Climbing at 2008-4-1 00:42:
用for /f "usebackq delims=" %%i in (`findstr .* "%a%"`) ...

不行啊,这样只会读了拖入的文件名,而不会读文件内容了。:(



批处理之家新域名:www.bathome.net
2008-4-1 00:46
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 10 楼』:  晕,原来如此容易:

 原来for语句在遇到路径和文件名中含有空格的时候只要用双引号将完整路径引起就可以解决不能读到路径的问题。
 在本批处理中则只要在%a%上加上双引号变成"%a%"就可以解决原来不能阅读路径和文件名中有空格的问题了。
 同时欢迎大家测试,发现了问题告诉我,我会尽自己能力来完善。
 namejm那段逐行逐字读取文本内容的代码太漂亮了,我也是想利用它为大家提供下便利了,不管怎么说,出发点绝无沾大哥光的意思。

[ Last edited by zw19750516 on 2008-4-1 at 02:10 AM ]



批处理之家新域名:www.bathome.net
2008-4-1 02:05
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: