国庆前诺言的兑现:
ps:诺言?自己对自己的要求,在楼下的楼下呢.
1: dos批处理与Transact-SQL的综合应用
keyword:磁盘索引,mssqlserver数据库,全盘搜索文件
/- *******************************************************
title: dos批处理与Transact-SQL的综合应用
Description: 快速查找目标文件在磁盘上的的位置
Author: passedbylove(被爱情路过)
Bulit on: Windows XP Sp2
Test on: Windows XP Sp2,Windows 2k SP4(通过)
Copyright@Blog:
http://hi.baidu.com/passedbylove
Comment: 鄙视拿别人写的东西贴上自己名字的人,不希望出现
上次那个: Google Hacking Against Privacy学习笔记
盗版问题.
********************************************************* -/
作为软件发烧友,日常储备一些文档资料已是司空见惯的了,
文件搜索不再是天外玄机,飞入寻常百姓家。
quote:你是不是遇到过这样的尴尬呢?
1. 前天我去栖霞山登山的时候拍的那么视频文件我都搜索这么久了,
一点结果都没有怎么就找不到呢,难道被我删了,不可能,没有啊?
2. 明明记得那些文件就放在D盘怎么搜索这么点时间就结束了.
找不到了,明天MM要看那篇能让她哭一包面纸的文章的时候怎么办........
上面是笔者现实生活中遇到的烦恼,这类问题让我上头脑筋.
就说上次吧,那个"jsp源码.rar"让我搜索了好半天,才找到,让我好找啊.
在这讲究效率的时代恐怕没有人为了体味淳朴做老牛车去县城吧 ;p
下面我们来说说文件搜索吧.
假如前天你和MM出去浪漫的时候,用数码相机拍了N张照片,现在想拿出来
寄给妈妈看看,怎么就找不到呢,妹妹还在楼下等你一起洗照片呢?
这么关键的事情,怎能怠慢,可不能让妹妹再外面痴痴的等哦,外面坏人多哦.
PS:此人目前还没有找到他的另一半~~~~(>_<)~~~~
话还没落音,你就三连个箭步走到电脑前,打开你乱七八糟的D盘,很用心的按下了F3,
打开搜索工具条,你那电脑搜索工具条是经典的Windows 2000风格的.

记得好像前天那些照片采集到电脑的时候,文件是jpg格式的,还想没有前缀dsn.
好了,信息都这么多了,搜索起来应该不吃力吧.
于是你在"要搜索的文件或文件夹名为(M)"中输入
dsn*.jpg
你高兴的哼着歌:"我不知道你在想什么还是那个地点那条街哦那缠绵的...."
可是左等右等,还没搜索出来东西。你那索尼相机照一个照片超过1280X1024了,
像素那么高,单个文件普遍大于2.5MB吧,
于是你选中"搜索选项<<"下面的 "大小(Z)"

"开始" -- "运行" 输入 calc.打开 计算器 2.5*1024=2560
在下拉菜单中你选中"至少",然后输入 2560
并勾选 "搜索系统文件夹"和"搜索隐藏文件和文件夹",
顺便也勾选了"搜索子文件夹",这样一来搜索范围已经限制下来了,
只要搜索到文件,我就右键"打开所在的文件夹(I)"就行了

可是你的电脑就不给你面子,速度还慢的受不了,放弃了.
熟悉dos的朋友可能会有想法了,对!就用P处理试试.
"开始" "运行" 输入 cmd
于是你输入 dir /a-d /s /b dsn*.jpg
出现下面界面速度仍旧很慢.

怎么办呢
既然用到 dir /a-d /s /b何不顺水推舟。
就用dir来做一个全硬盘文件列表索引呢.
于是你又在命令提示符里面输入
for %i in (c,d,e,f) do dir /a-d /s /b %i:/*.*>>d:/filesindexer,lst

生成一个含有文件路径列表
下面就设计到数据库的了,看主要图吧
首先打开 "查询分析器"输入
use master
go
if exists (select name from sysdatabases where name='FileSearchEngine')
drop database FileSearchEngine
go
create database FileSearchEngine
go
use FileSearchEngine
go
if exists (select name from sysobjects where name='fileDesc')
drop table fileDesc
go
create table fileDesc
(
fileindexer varchar(1000)
)
go
--从文件插入数据
bulk insert fileDesc from 'd:/filesindexer.lst'
go
--查看记录
select * from fileDesc
go
现在不管你怎么搜了,
就搜索那个照片
只要在查询分析器中输入,
select * from fileDesc where fileindexer like 'dsn*.jpg'
还有几个关键字 not,not in, not like,
例如你想找出你电脑中的一些jpg图片文件,
查询分析器中输入
select * from fileDesc where fileindexder like '*.jpg'
还有很多的文本函数,就看你怎么用了啊,例如 substring,cast,replace,upper
sql语法差的很,大虾不打脸 ;-p
with a funny face
-----------------------------------------------------
下篇文章预报:
用Transact-SQL读写注册表,枚举注册表键值,超精彩