Board logo

标题: [已结]随机读取文本文件的一行文本内容 [打印本页]

作者: jhjhero     时间: 2008-11-28 09:23    标题: [已结]随机读取文本文件的一行文本内容

例如文本文件路径 c:\a.txt我想随即选取一行文字并显示:借鉴别人的写了下面代码:
@echo off
setlocal ENABLEDELAYEDEXPANSION
    set file=cont.txt
set /a "col=%random% %% 100"
set /a col2 = %col% - 1
for /f "skip=%col2% tokens=*" %%i in (%file%) do  echo !%%i! >1.txt
pause
goto :eof
代码执行没有结果,为什么???

[ Last edited by HAT on 2008-11-29 at 13:11 ]
作者: jhjhero     时间: 2008-11-28 09:28
重新贴上来个
@echo off
setlocal ENABLEDELAYEDEXPANSION
    set file=a.txt
set /a "col=%random% %% 100"
set /a col2 = %col% - 1
for /f "skip=%col2% tokens=*" %%i in (%file%) do  echo %%i >1.txt
pause
goto :eof

错误在那里呢??高手帮我指点一下~~~~`
作者: sea1112     时间: 2008-11-28 11:15


  Quote:
Originally posted by jhjhero at 2008-11-28 09:23 AM:
例如文本文件路径 c:\a.txt我想随即选取一行文字并显示:借鉴别人的写了下面代码:

@echo off
setlocal ENABLEDELAYEDEXPANSION
    set file=cont.txt
set /a "co ...

set /a "col=%random%%100
这里出来的是0~100之间的数
如果你走运出的是0或1,下一句就是col2=0-1、col2=1-1
文件就找不到内容了。
作者: sea1112     时间: 2008-11-28 11:19
还有你的文件内容是正好100行吗?
不然col2=99
你的文件内容没有100行,是出不来的啊。
作者: wangff     时间: 2008-11-28 15:27

@echo off
setlocal ENABLEDELAYEDEXPANSION
    set file=cont.txt
:l
set /a col=%random% %% 100
set /a col2 = %col% - 1
for /f "skip=%col2% tokens=*" %%i in (%file%) do (
   echo %%i
   goto :n
)
:n
pause
goto l
原结果不是一行且放干1.txt中

[ Last edited by wangff on 2008-11-28 at 15:29 ]
作者: jhjhero     时间: 2008-11-28 19:43
谢谢大家的解答,问题已解决~~~~~~~~~