Board logo

标题: [已结]如何把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
搞定了,严重感谢各位提供的帮助。