Board logo

标题: [已结]如何把dir的结果分页显示出来? [打印本页]

作者: LQDi1982     时间: 2009-2-10 17:02    标题: [已结]如何把dir的结果分页显示出来?

昨天注册的号,今天终于能发帖了,在不能发帖的时间也搜索了好多帖子,解决了很多问题,在此多谢各位前辈高人了。但是还有个问题却没找到答案:

如题
CODE:  [Copy to clipboard]
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
关于变量延迟:http://www.cn-dos.net/forum/viewthread.php?tid=20733
作者: 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
搞定了,严重感谢各位提供的帮助。




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5