标题: 这段批处理什么意思?for /f "usebackq tokens=1*
[打印本页]
作者: linuxzhen
时间: 2008-8-10 11:39
标题: 这段批处理什么意思?for /f "usebackq tokens=1*
for /f "usebackq tokens=1* delims=/" %%a in (`dir /b "C:\pdf\"`)
紧急求助
作者: dosyenanjs
时间: 2008-8-10 11:42
提取整行的所有列,忽略空格.
作者: haiou327
时间: 2008-8-10 13:07
在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 ]
作者: haiou327
时间: 2008-8-10 13:09
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 ]
作者: zaixinxiangnian
时间: 2010-3-18 16:09
标题: 谢谢HAIOU327的回答
还是我们这里的热情,,,我们是初学你那两个例子看不懂,你能不能一句一句的解下
太感谢你了