Board logo

标题: [文件操作] 批处理怎样提取某盘符下指定时间的所有文件文件名及创建时间? [打印本页]

作者: 幻の飞鱼    时间: 2010-7-6 17:22     标题: 批处理怎样提取某盘符下指定时间的所有文件文件名及创建时间?

为这个问题搞的头大了,
要在一个盘符下所有文件中寻找指定时间段创建的所有文件,将这些文件的文件名(只是文件名及后缀不需要绝对路径)及创建时间以表格形式存储,
只要求提取doc及xml又该怎么写。能对命令做一定解释将不胜感激
作者: sgaizxt001    时间: 2010-7-6 21:49

dir /t:c
dir /t:c *.doc *.xml
dir /?
作者: 幻の飞鱼    时间: 2010-7-7 22:24

dir不能完成要求的样子,不用/B文件目录形式排列,用了/B,文件名变成了绝对路径,而且看不到创建时间
作者: sgaizxt001    时间: 2010-7-7 23:20

所以不用/b,就用dir /t:c的结果来分析时间
作者: 幻の飞鱼    时间: 2010-7-8 10:05

但是这样显示不了全部子文件夹里的内容
我需要全部子文件夹内容,需要用/S,可是用了/S,就看不到简称和时间
作者: renmingwu    时间: 2010-7-9 09:07

forfiles可以吗。
作者: 幻の飞鱼    时间: 2010-7-9 23:42

楼上是指循环遍历么?我是这么想的,但确实写不出来。
作者: sgaizxt001    时间: 2010-7-10 00:39

办法是想出来的塞
  1. @echo off
  2. for /f "tokens=1,2,4 delims= " %%a in ('dir /t:c /s e:\vod') do (
  3.   if %%a geq 1990 if not "%%c"=="" if not "%%c"=="." if not "%%c"==".." (echo %%a %%b %%c>>a.xml)
  4. )
  5. pause
复制代码
把%%a %%b %%c的空格换成tab
作者: rivch    时间: 2010-7-10 19:16

C:\>for /f "tokens=1,2,4 delims= " %a in ('dir /t:c /s /n c:\*.exe^|findstr "^20
10"') do echo %a %b %c>>3.txt
时间可以精确到天,如这样的格式 2009-05-02 修改2010成你需要的时间!
批处理格式的话加上 setlocal enabledelayedexpansion
作者: renmingwu    时间: 2010-7-30 16:57

  1. @echo off
  2. FOR /F "tokens=*" %%i IN ('forfiles /p e:\learn\web  /m *.doc /s /c "cmd /c echo @path"') DO (dir /t:C %%i|findstr /i  doc>>doc.txt)
复制代码
这个只能查doc的,不知道怎么在forfiles中查两种文件,改下扩展名查两次吧.
另这样查出来的结果有太多东西,用findstr过滤了下。

[ 本帖最后由 renmingwu 于 2010-8-2 09:51 编辑 ]
作者: gfwlxx    时间: 2010-7-30 17:26

1.file createtime
2 提取doc及xml

占位, 有空了给你整




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2