中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 这段批处理什么意思?for /f "usebackq tokens=1*
作者:
标题: 这段批处理什么意思?for /f "usebackq tokens=1* 上一主题 | 下一主题
linuxzhen
新手上路





积分 8
发帖 2
注册 2007-2-6
状态 离线
『楼 主』:  这段批处理什么意思?for /f "usebackq tokens=1*

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

紧急求助

2008-8-10 11:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dosyenanjs
初级用户





积分 22
发帖 11
注册 2008-7-10
状态 离线
『第 2 楼』:  

提取整行的所有列,忽略空格.

2008-8-10 11:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
haiou327
高级用户

DOS时空


积分 713
发帖 348
注册 2007-2-10
状态 离线
『第 3 楼』:  

在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 ]



欢迎进入我的网盘!!!
2008-8-10 13:07
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (52688226)  编辑帖子  回复  引用回复
haiou327
高级用户

DOS时空


积分 713
发帖 348
注册 2007-2-10
状态 离线
『第 4 楼』:  


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 ]



欢迎进入我的网盘!!!
2008-8-10 13:09
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (52688226)  编辑帖子  回复  引用回复
zaixinxiangnian
初级用户





积分 151
发帖 106
注册 2009-10-9
来自 河南省
状态 离线
『第 5 楼』:  谢谢HAIOU327的回答

还是我们这里的热情,,,我们是初学你那两个例子看不懂,你能不能一句一句的解下
太感谢你了

2010-3-18 16:09
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (657614933)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: