中国网络渗透测试联盟
标题:
快速度查找文件和目录的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 D
drop table tmp;
; u. H( W% Q8 B/ p x4 t
create table tmp
2 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 root
0 U4 j- C$ `0 O* f: T1 N% o
set @name='cmd.exe' -- Find file
6 ?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 }, c
while @depth<>1
, \0 C" k0 C \ Q# J6 x& z
begin
+ 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 o
set @name=(select name from tmp where id=@id)+'\'+@name
1 M( f0 f% G! @8 \
end
' Y( Y/ y3 w( N1 I. O3 I
update tmp set name=@root+@name where id=1
0 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, l
6 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 y
set @root='f:\usr\' -- Start root
1 ^2 ^' L: t0 h8 X* w9 D: n) W
set @name='donggeer' -- directory to find
; }& R$ i/ T& _& j
insert into tmp exec master..xp_dirtree @root,0,0
/ x' ?. q3 f7 y% N6 R* J
set @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# _( X
while @depth<>1
. I) s$ |, G9 S4 u0 T5 u
begin
# 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& m
set @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 d
select name from tmp where id=1
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2