|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『楼 主』:
一句话 "全盘"查找指定日期内的指定文件
下面代码还是有点烦,见6楼简洁代码 PS: 2008-3-6-12:40 plp626
查看根目录树内 2008年3月份 ... ... 的exe文件
创建的:(查病毒方便了)
cd\&(((dir/a/s/tc/4|sort)|findstr /bc:"2008-03")|findstr /ve \.)|findstr /e \.exe 写入的:(注意日期中间是两个空格)
cd\&(((dir/a/s/tw/4|sort)|findstr /bc:"2008-03-01 20:10")|findstr /ve \.)|findstr /e \.exe 访问的:
cd\&(((dir/a/s/ta/4|sort)|findstr /bc:"2008-03-01")|findstr /ve \.)|findstr /e \.exe [ Last edited by plp626 on 2008-3-6 at 02:00 PM ]
此帖被 +4 点积分 点击查看详情 评分人:【 lxmxn 】 | 分数: +4 | 时间:2008-3-3 19:06 |
|
|
|
2008-3-3 19:00 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
|
2008-3-3 19:07 |
|
|
zh159
金牌会员
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第
3 楼』:
如果是查找特定格式文件,应该可以更简化:
cd\&dir/a/s/tc *.exe|findstr /bc:"2008-03" 既然是查找指定日期内的指定文件,可以不必使用sort排序
|
|
|
2008-3-4 11:07 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
4 楼』:
多谢zh159前辈指教. 现精简如下
查看根目录树内 2008年3月份 ... ... 的exe文件:
创建的:
cd\&dir/a/s/tc/4 *.exe|sort|findstr /b "2008-03" 写入的注意日期中间是两个空格)
cd\&dir/a/s/tw/4 *.exe|sort|findstr /bc:"2008-03-01 20:10" 访问的:
cd\&dir/a/s/ta/4 *.exe|sort|findstr /b "2008-03-01" 查看c:盘内 2008年3月1日到3月6日访问的exe文件:
dir/a/s/ta/4 c:\*.exe|findstr /b "2008-03-0[1-6]"|sort 查看当天访问的所有文件.
for /f "skip=1" %a in ('wmic logicaldisk where "drivetype=3"') do echo %a------------------&dir/a/ta/s %a\|findstr /b "%date:~,10%"|sort|findstr /ve \.
@echo off
set http=http://www.cn-dos.net/forum/viewthread.php?tid=38096
if "%1"=="/?" goto help
if "%1"=="/c" goto code
if "%1"=="/a" goto all
if "%3"=="" (set t3=%date:~5,5%) else set t3=%3
dir/a/s%1/4 %2|findstr /b "2008-%t3%"|findstr /ve \.|sort
goto :eof
:help
echo -------------------------
echo /c 看源代码
echo /a 全盘的,必须作为第一个参数
echo /ta 访问
echo /tw 修改
echo /tc 创建
echo 例:
echo 查找C盘当天所有 访问的 后缀名exe的文件
echo %~n0 /ta c:\*.exe
echo 查看当天全盘访问的所有文件
echo %~n0 /a /ta *.*(*.*可以省略)
echo 查找当前目录树下2008年3月1号到9号所有 修改的 文件名与*.??匹配的 文件
echo %~n0 /tw *.?? 03-0[1-9]
echo 详细匹配见findstr /r参数.&echo 欢迎修改查询,并来%http%跟帖.
goto :eof
:all
shift
if "%3"=="" (set t3=%date:~5,5%) else set t3=%3
for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype=3"') do (
echo %%a------------------
dir/a/s%1/4 %%a\%2|findstr /b "2008-%t3%"|sort|findstr /ve \.
)
goto :eof
:code
more %~f0
ping /n 2 127.0>nul
start/max %http%&goto :eof PS: 用sort是为了按时间先后顺序排序,不在乎时间顺序可以省略.
[ Last edited by plp626 on 2008-3-6 at 11:41 AM ]
|
|
2008-3-4 20:04 |
|
|
5872169
高级用户
积分 959
发帖 474
注册 2007-10-25
状态 离线
|
『第
5 楼』:
写的很好,但是没有指明查到文件的路径!
|
|
2008-3-6 12:10 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
6 楼』:
你结合for扩展变量试试.
为了代码的简洁没有给出,因为这些都是在命令行下随手输入用的.找到了要查找的文件,用dir/a/s/b *.*来查路径
|
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~ 空间~~cmd学习 |
|
2008-3-6 13:11 |
|
|
5872169
高级用户
积分 959
发帖 474
注册 2007-10-25
状态 离线
|
『第
7 楼』:
这样太查找太麻烦,能不能搜索完之后能指明路径呢?
|
|
2008-3-6 13:17 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
8 楼』:
@echo off
for /f "tokens=3*" %%a in ('dir/a/s/ta/4 *.exe^|findstr /b "2008-03-0[1-6]"') do dir/a/s/b "%%b"
pause 现在优化一下:
@echo off
for /f "tokens=3*" %%a in ('dir/a/s/ta/4 *.exe^|findstr /b "2008-03-0[1-6]"') do echo.%%~$PATH:b
pause [ Last edited by plp626 on 2008-3-7 at 12:26 AM ]
|
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~ 空间~~cmd学习 |
|
2008-3-6 13:28 |
|
|
abcd
银牌会员
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
9 楼』:
用wmic是否可以更快??
回plp262兄,我没有批评的意思,我知道自己说错了,所以马上把帖子删除了
见谅见谅
|
|
2008-3-6 13:57 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
10 楼』:
abcd兄说的是,第一个代码确实太慢,
对wmic我还不怎么了解.刚刚接触,模仿而已.
|
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~ 空间~~cmd学习 |
|
2008-3-6 14:03 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
|
2008-3-6 14:04 |
|
|
5872169
高级用户
积分 959
发帖 474
注册 2007-10-25
状态 离线
|
『第
12 楼』:
Quote: | Originally posted by plp626 at 2008-3-6 01:28 PM:
@echo off
for /f "tokens=3*" %%a in ('dir/a/s/ta/4 *.exe^|findstr /b "2008-03-0[1-6]"') do dir/a/s/b "%%b"
pause 应abcd兄批评,现在优化一下: ... |
|
第一个代码无法全盘搜索,第二个代码错误
|
|
2008-3-6 14:27 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
13 楼』:
第一个是默认当前目录下搜索,你放在根目录下试试(全盘是逻辑盘)
若真要整个磁盘搜索,你结合6楼第5个代码改改,或直接用第6个代码的/a参数来做
第二个代码没错,我机子xpsp2
|
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~ 空间~~cmd学习 |
|
2008-3-6 14:42 |
|