Board logo

标题: 借namejm大哥的原码写的文件阅读器 [打印本页]

作者: bat-zw     时间: 2008-3-31 16:08    标题: 借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 ]

作者: tempuser     时间: 2008-3-31 16:38
怎么用呢?

作者: bat-zw     时间: 2008-3-31 16:42
Originally posted by tempuser at 2008-3-31 16:38:
怎么用呢?

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

作者: faultcode     时间: 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%"=="1" echo       没有发现要阅读的文件,请返回正确操作。
ping /n 3 127.1 >nul&goto begin


有死循环 :(

作者: bat-zw     时间: 2008-3-31 17:02
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 ]

作者: bat-zw     时间: 2008-3-31 18:47    标题: 请大家都来帮助测试:
我现在发现了在阅读名称字符有空格的文件出现问题,正在改进中。。。。。。。。。。。。
===================================
问题己解决并已修改,请大家放心使用了。

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

作者: bat-zw     时间: 2008-4-1 00:37    标题: 谁能解决我上面的问题啊:
我想了好久都没想到解决办法,在论坛也搜了很多次了,请大家帮忙啊!

作者: Climbing     时间: 2008-4-1 00:42
用for /f "usebackq delims=" %%i in (`findstr .* "%a%"`) ...

作者: bat-zw     时间: 2008-4-1 00:46
Originally posted by Climbing at 2008-4-1 00:42:
用for /f "usebackq delims=" %%i in (`findstr .* "%a%"`) ...

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

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

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