标题: 新手求助一for命令具体问题
[打印本页]
作者: calefe
时间: 2006-12-12 03:40
标题: 新手求助一for命令具体问题
有段命令如下
for /f "skip=5 tokens=1,* delims= " %a in (dir.txt) do @echo %a%b%c
dir.txt是重定向当前目录下的dir信息
我想取出当中的文件名和修改日期的信息(如2006-12-11 aaa.txt)去掉时间和大小
问题
1。2006-12-11 08:52 8 aaa.txt 时间和大小中间好像不认为是空格 ,"delims= "没区分
2。如果成功了我又想把取出来的重定向到另一个文档中可以吗?如到文档temp.txt下。内容为
2006-12-11 aaa.txt
2006-12-11 bbb.txt
小弟刚看了一会会,有点不太理解。帮助文档看不懂,问下各位。谢谢
[
Last edited by calefe on 2006-12-11 at 02:44 PM ]
作者: calefe
时间: 2006-12-12 03:41
在线等
作者: xusen
时间: 2006-12-12 04:30
for /f "tokens=1,4" %a in ('dir') do @echo %a %b
作者: calefe
时间: 2006-12-12 04:58
麻烦能再说详细点吗。这样会有标题
(驱动器 本地磁盘
卷的序列号是
D:\)
还有就是能重定向到一个文件上吗?
谢谢
作者: lxmxn
时间: 2006-12-12 14:30
此方法按照楼主的意思来写的,其中不足之处是最后两行会有多余的信息。
@echo off
if exist temp.txt del /f/a temp.txt
for /f "skip=7 tokens=1-3*" %%a in (dir.txt) do (
if not "%%d"=="" echo %%a %%d
echo %%a %%d>>temp.txt
)
pause
下面这个方法同样可以达到楼住的目的,把bat文件放在要测试的目录下运行即可。
@echo off&setlocal EnableDelayedExpansion
if exist temp.txt del /a/f temp.txt
for /f "delims=" %%a in ('dir /b/a-d') do (
set date_=%%~ta
set date_=!date_:~0,10!
echo !date_! %%~nxa
echo !date_! %%~nxa>>temp.txt
)
pause
作者: calefe
时间: 2006-12-12 23:43
谢谢。我最终的目地是想删某特定时间的特定文件名的文件
for不是太理解 对楼上有个问题:
for /f "skip=7 tokens=1-3*" %%a in (dir.txt) do (
if not "%%d"=="" echo %%a %%d
echo %%a %%d>>temp.txt
)
在这个循环里两个a b 的变量在每一次循环里是相对应的吗,在这个例子里就是说a b是不是代表同一个文件的文件名和修改时间?