中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 17:46
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 这段批处理什么意思?for /f "usebackq tokens=1* 查看 1,613 回复 4
楼 主 这段批处理什么意思?for /f "usebackq tokens=1* 发表于 2008-08-10 11:39 ·  中国 山东 淄博 桓台县 联通
新手上路
积分 8
发帖 2
注册 2007-02-06 12:17
19年会员
UID 78787
性别 男
状态 离线
for /f "usebackq tokens=1* delims=/" %%a in (`dir /b "C:\pdf\"`)

紧急求助
2 发表于 2008-08-10 11:42 ·  中国 广东 东莞 电信
初级用户
积分 22
发帖 11
注册 2008-07-10 21:36
18年会员
UID 121337
性别 男
状态 离线
提取整行的所有列,忽略空格.
3 发表于 2008-08-10 13:07 ·  中国 广东 汕头 电信
高级用户
★★★
DOS时空
积分 713
发帖 348
注册 2007-02-10 13:59
19年会员
UID 79169
性别 男
状态 离线
在set输出的内容中/作为分隔符,分为两列,从第一个/号左边作为一段赋值%%a,从第一个/号右边开始全部视为了一段赋值%%b

如DIR的内容为
c:\pdf\1.txt
c:\pdf\2.txt
c:\pdf\3.rar
c:\pdf\4.bmp

那么\作分隔符,
c:
c:
c:
c:
第一列赋值%%a

pdf\1.txt
pdf\2.txt
pdf\3.rar
pdf\4.bmp
这些全部赋值%%b

但是你这里用到的是DIR/B的参数只会输出文件名,所以tolens=1* delims=\是多余的.你这句是规范的.
改成如下即可for /f "delims=*" %%a in ('dir /b d:\qq\') do (
echo %%a

结合你上面的举两个例你看看
以下为例1

@echo off
md d:\pdf 2>nul
type>d:\name.txt 2>nul
type>>d:\pdf\1.txt 2>nul
type>>d:\pdf\2.txt 2>nul
type>>d:\pdf\3.rar 2>nul
type>>d:\pdf\4.bmp 2>nul
for /r d:\pdf\ %%i in (*) do (
echo %%~i >>d:\name.txt
)
for /f "tokens=1* delims=\" %%a in (d:\name.txt) do (
echo %%a
)
pause



例2

@echo off
md d:\pdf 2>nul
type>d:\name.txt 2>nul
type>>d:\pdf\1.txt 2>nul
type>>d:\pdf\2.txt 2>nul
type>>d:\pdf\3.rar 2>nul
type>>d:\pdf\4.bmp 2>nul
for /r d:\pdf\ %%i in (*) do (
echo %%~i >>d:\name.txt
)
for /f "tokens=1* delims=\" %%a in (d:\name.txt) do (
echo %%b
)
pause


[ Last edited by haiou327 on 2008-8-10 at 01:59 PM ]
4 发表于 2008-08-10 13:09 ·  中国 广东 汕头 电信
高级用户
★★★
DOS时空
积分 713
发帖 348
注册 2007-02-10 13:59
19年会员
UID 79169
性别 男
状态 离线
for /f "usebackq tokens=1* delims=/" %%a in (`dir /b "C:\pdf\"`) do  (
echo %%a
)


等同于

for /f "tokens=1* delims=/" %%a in ('dir /b C:\pdf\') do (
echo %%a
)


路径没有空格,可以不用tokens参数

[ Last edited by haiou327 on 2008-8-10 at 01:57 PM ]
5 谢谢HAIOU327的回答 发表于 2010-03-18 16:09 ·  中国 广东 佛山 顺德区 电信
初级用户
★★
积分 151
发帖 106
注册 2009-10-09 21:24
16年会员
UID 152856
性别 男
来自 河南省
状态 离线
还是我们这里的热情,,,我们是初学你那两个例子看不懂,你能不能一句一句的解下
太感谢你了
论坛跳转: