
CODE: [Copy to clipboard][ Last edited by wewebb on 2010-11-18 at 18:30 ]::如果每行中间的那个数字是序号的话,可以用 Findstr 随机找出。
@echo off & Title 变量随机定义
Setlocal EnableDelayedExpansion
::查找文件里的有效数据有多少行:
For /f %%a in ('findstr "^WKS" File.txt ') do (set /a N+=1)
Echo File.txt 文件共有 !N! 行有效数据!
::设置随机数,并用 Findstr 找出 行中间有对应数的那一行。
set /a Line=%Random% %% !N! +1
For /f "tokens=1-3" %%a in ('findstr " %Line% " File.txt ') do (
set "One=%%a"
set "Two=%%b"
set "Thr=%%c"
)
echo %One%
echo %Two%
echo %Thr%
Endlocal
Pause
CODE: [Copy to clipboard][ Last edited by wewebb on 2010-11-18 at 18:29 ]::如果每行中间的那个数字不是序号,而是个不定数的话。
@echo off & Title 变量随机定义
Setlocal EnableDelayedExpansion
::查找文件里的有效数据有多少行,并为每行加上行号:
(For /f "delims=" %%a in ('findstr "^WKS" File.txt ') do (set /a N+=1 & echo !N! %%a) ) > NewFile.txt
Echo NewFile.txt 文件共有 !N! 行有效数据!
::设置随机行数,并用 Findstr 找出对应行。
set /a Line=%Random% %% !N! +1
For /f "tokens=2-4" %%a in ('findstr "^%Line% " NewFile.txt ') do (
set "One=%%a"
set "Two=%%b"
set "Thr=%%c"
)
echo %One%
echo %Two%
echo %Thr%
Endlocal
Pause
CODE: [Copy to clipboard][ Last edited by wewebb on 2010-11-18 at 18:49 ]::如果文件内容都是纺一格式(没有多余信息行),每行中间的数是不定数的话。
@echo off & Title 变量随机定义
Setlocal EnableDelayedExpansion
::查找文件里有多少行
For /f "delims=" %%a in (File.txt) do set /a N+=1
Echo File.txt 文件共有 !N! 行!
::设置随机行数
set /a Line=%Random% %% !N! +1
For /f "tokens=1-3" %%a in (File.txt) do (
set /a num+=1
if !num! == !Line! (set "One=%%a" & set "Two=%%b" & set "Thr=%%c")
)
echo %One%
echo %Two%
echo %Thr%
Endlocal
Pause
| 欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) | Powered by Discuz! 2.5 |