中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 02:51
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 路径提问 查看 738 回复 1
楼 主 路径提问 发表于 2008-01-01 04:05 ·  中国 广东 广州 电信
新手上路
积分 11
发帖 5
注册 2007-10-21 23:05
18年会员
UID 100386
性别 男
状态 离线
1、cd.>"%tmp%\tmp.txt"
setlocal enabledelayedexpansion
2、for /f "tokens=1-3*" %%i in ('dir /a-d /tc /s^|findstr ":"') do (
3、 if "!var:~1,1!"==":" set route=!var!
if not "!route!"=="!var!" if not "%%j"=="" echo %%i %%j !route:~0,-3!\%%l>>"%tmp%\tmp.txt"
)
4、sort<"%tmp%\tmp.txt">"%tmp%\list.txt"
del "%tmp%\tmp.txt"
start "" "%tmp%\list.txt"

问题1、 for /f "tokens=1-3*" 是什么意思??CD.是不是转到当前状态?
问题2、 ('dir /a-d /tc /s^|findstr ":"') 中的 /tc /s^|findstr是什么意思?

如果可以的话,下面也说明一下,谢谢高手了。
新手们也想知道,对吧。期待高手。

[ Last edited by lieeq2000 on 2008-1-1 at 04:10 AM ]
2 发表于 2008-01-01 12:10 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
for循环中的tokens表示取文件的第几列,tokens=1代表取第一列,tokens=1,2代表取第一列和第二列,tokens=1-3代表取第一到第三列

cd.的意思是切换到当前目录,不过在这里是为了结合后面的重定向符号>生成一个空文件,类似的方法有type nul>"%tmp%\tmp.txt"

/tc /s都是dir命令的参数,具体请查看帮助dir /?

^是转义符,对后面的管道命令|进行转义,整体来看就是把dir命令的结果通过管道传递给findstr命令
论坛跳转: