中国网络渗透测试联盟

标题: 快速度查找文件和目录的SQL语句 [打印本页]

作者: admin    时间: 2012-9-15 14:42
标题: 快速度查找文件和目录的SQL语句
查找文件的语句: p1 H* b* \4 _% A( }
$ I$ x0 Z2 P1 K  p5 A# K1 h; d1 ]5 d
CODE:/ E8 ]4 [# W6 H* V0 B

# e# L" t  v8 l9 z1 Ddrop table tmp;
; u. H( W% Q8 B/ p  x4 tcreate table tmp2 z* K+ T) h% ^' \( v; T$ |
(: o& C. E* c# l- H
[id] [int] IDENTITY (1,1) NOT NULL,: d7 O! k$ P0 R$ g( l
[name] [nvarchar] (300) NOT NULL,- d' N0 o% g  ?& N3 f
[depth] [int] NOT NULL,$ k( j# J) d" b6 o3 }* |; Z9 ^
[isfile] [nvarchar] (50) NULL
. S8 ^  T1 ?% g  r& T6 y: e);
, ~# i' z. y3 X' t6 k8 ~) _3 H' x5 ?9 H: T: d3 b7 U
declare @id int, @depth int, @root nvarchar(300), @name nvarchar(300)  p: q; i& O: S! K: E9 L1 q0 e
set @root='f:\usr\' -- Start root0 U4 j- C$ `0 O* f: T1 N% o
set @name='cmd.exe'   -- Find file6 ?8 [8 o4 E, G! G6 L" r2 T
insert into tmp exec master..xp_dirtree @root,0,1--) j4 X5 ?2 R2 W4 k
set @id=(select top 1 id from tmp where isfile=1 and name=@name) : n4 t5 S9 H/ E; T5 n  E! b" S7 D0 G
set @depth=(select top 1 depth from tmp where isfile=1 and name=@name)
( q+ w$ z% O% |2 g: A* ]6 }, cwhile @depth<>1
, \0 C" k0 C  \  Q# J6 x& zbegin + X3 Z1 J* k% f
set @id=(select top 1 id from tmp where isfile=0 and id<@id and depth=(@depth-1) order by id desc) 0 P: c" f+ R$ [0 U% X  P
set @depth=(select depth from tmp where id=@id)
2 K( W2 I* X2 A4 O6 n6 oset @name=(select name from tmp where id=@id)+'\'+@name
1 M( f0 f% G! @8 \end
' Y( Y/ y3 w( N1 I. O3 Iupdate tmp set name=@root+@name where id=10 W3 v% K. a* K, m' k; `# Z6 G$ `
select name from tmp where id=1, V* H, G) ^" [) b1 ?4 U

# p, z0 g6 K$ G" L查找目录的语句3 ?' k: ~6 j3 g* I  T; W) F
2 M" V9 |0 ]* v* |( a/ b. ?. S

: h- r3 L4 q( d' r/ {CODE:! s$ f* z1 ^2 I8 ^/ r& e

. G* X, j. a, l6 I4 E) w! k1 x# G  d$ o9 l
drop table tmp;
9 i) N' m: Z, o) r$ n% S* `create table tmp
$ Q% X+ N2 r8 C) A7 b8 @(5 C" r: M( x7 n1 M- a% v
[id] [int] IDENTITY (1,1) NOT NULL,
+ F2 a4 j$ ^8 ^' {+ X0 ^/ n* ^! O[name] [nvarchar] (300) NOT NULL,
+ a# x5 i1 T* p$ g% b5 @[depth] [int] NOT NULL
2 z( z& `8 H8 {) `: _0 _);
* _8 K, u/ ^% C' @" ^6 `( ^6 u# @1 X% b6 o
declare @id int, @depth int, @root nvarchar(300), @name nvarchar(300)
. c+ F" S  k# Q2 s( O6 ^5 yset @root='f:\usr\' -- Start root
1 ^2 ^' L: t0 h8 X* w9 D: n) Wset @name='donggeer' -- directory to find
; }& R$ i/ T& _& jinsert into tmp exec master..xp_dirtree @root,0,0
/ x' ?. q3 f7 y% N6 R* Jset @id=(select top 1 id from tmp where name=@name) : `% x. {5 B- A  ?4 v0 k
set @depth=(select top 1 depth from tmp where name=@name)
6 e: B9 Q" ]4 U6 n! S* l# _( Xwhile @depth<>1
. I) s$ |, G9 S4 u0 T5 ubegin # e! R# L3 @6 _7 P% o
set @id=(select top 1 id from tmp where id<@id and depth=(@depth-1) order by id desc)& K8 m/ c( m* C3 E" p
set @depth=(select depth from tmp where id=@id)
) @' _- F" @: w0 b& mset @name=(select name from tmp where id=@id)+'\'+@name & y" O- ~% B; h. ?
end update tmp set name=@root+@name where id=1
! j  m$ q6 h- x# J  x& T" P7 dselect name from tmp where id=1




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2