标题: [已结]如何把dir的结果分页显示出来?
[打印本页]
作者: LQDi1982
时间: 2009-2-10 17:02
标题: [已结]如何把dir的结果分页显示出来?
昨天注册的号,今天终于能发帖了,在不能发帖的时间也搜索了好多帖子,解决了很多问题,在此多谢各位前辈高人了。但是还有个问题却没找到答案:
如题
for /f "tokens=*" %%a in ('dir /b *.txt') do echo 日记名称:%%~na
我使用如上命令将该目录下的txt文件名显示出来,现请教一下:
1.能否让一行显示多个结果且能对齐?
2.如果txt文件太多的话能否分页显示,每次显示一定的条数后就暂停?
Last edited by HAT on 2009-2-12 at 03:06 ]
作者: LQDi1982
时间: 2009-2-10 17:15
set num=1
for /f "tokens=*" %%a in ('dir /b *.txt') do (
echo 日记名称:%%~na
set /a num=%num%+1
echo %num%
if num==5 pause>nul
)
刚试了下这个,还是不行,echo %num%出来的结果总是1,请教下高手,这是什么原因?
作者: yishanju
时间: 2009-2-10 17:31
dir /w /p /a:-d *.txt
作者: yishanju
时间: 2009-2-10 17:32
dir /d /p /a:-d *.txt
作者: mountvol
时间: 2009-2-10 17:38
变量延迟
作者: LQDi1982
时间: 2009-2-10 18:33
2楼3楼的试了不行哇。
5楼的,能否具体点?
作者: zhengqian529
时间: 2009-2-10 18:40
作者: LQDi1982
时间: 2009-2-10 18:49
我用了setlocal enabledelayedexpansion还是不行哇。num的值还是没变。
作者: netbenton
时间: 2009-2-10 22:12
每行显示三个,20行pause
echo off&setlocal enabledelayedexpansion
set num=1
for /f "tokens=*" %%a in ('dir /b *.txt') do (
set /a num+=1,next=num%%3
if !next!==0 echo.&set /p= !num! <nul
set /p= 日记名称:%%~na <nul
if num==60 pause>nul
)
Last edited by netbenton on 2009-2-10 at 20:14 ]
作者: 不得不爱
时间: 2009-2-10 22:31
楼上的if num==60 pause>nul
可能会错错吧?
应该改为
if !num!==60 pause>nul
作者: netbenton
时间: 2009-2-10 22:35
标题: :lol: :p

是呀,搞错了
不好意思,还没试过呢
作者: yishanju
时间: 2009-2-10 23:03
setlocal enabledelayedexpansion
set num=1
for /f "tokens=*" %%a in ('dir /b *.txt') do (
echo 日记名称:%%~na
set /a num=!num!+1
echo !num!
if !num! equ 5 pause>nul
)
pause
作者: LQDi1982
时间: 2009-2-12 01:45
多谢各位了。忙了两天,今天晚上住的地方也能上网了,开心得一B,急忙上来看看。试下楼上几位大侠提供的方法先。
作者: LQDi1982
时间: 2009-2-12 02:02
搞定了,严重感谢各位提供的帮助。