初步:create table #t(Outp varchar(2000))insert #t
exec master..xp_cmdshell 'dir c:\ /w'delete #t
where outp not like '%.%'
and outp not like '%[[]%'delete #t
where outp is nullselect * from #t再看看怎么拆

解决方案 »

  1.   

    完整(总觉得这方法很笨,期待更好的方法)create table #t(Outp varchar(2000))insert #t
    exec master..xp_cmdshell 'dir c:\ /w'delete #t
    where outp not like '%.%'
    and outp not like '%[[]%'delete #t
    where outp is null--
    update #t
    set outp=' '+ outp
    --去除目录
    while exists (select * from #t where outp like '%[[]%')
    update #t
    set outp=stuff(outp,charindex('[',outp),charindex(']',outp)-charindex('[',outp)+1,'')
    where outp like '%[[]%'delete #t
    where outp is nulldelete #t
    where outp =''
    declare @sql varchar(8000)
    set @sql=''
    select @sql=@sql+replace(outp,' ',''' union all select ''')
     from #tset @sql=replace(@sql,'union all select ''''','')
    print @sqlset @sql='delete #t insert #t select a='''+@sql
    if right(@sql,18)='union all select '''
    set @sql=left(@sql,len(@sql)-18)
    print @sqlexec( @sql)--去空行
    delete #t
    where outp =''select * from #tdrop table #t
      

  2.   

    EXECUTE master.dbo.xp_dirtree N'G:\ddd\', 1, 1
      

  3.   

    果然有好方法,学习create table #t (subdirectory nvarchar(300),depth int,file int)insert #t
    EXECUTE master.dbo.xp_dirtree N'G:\ddd\', 1, 1select * from #t
    where file=1drop table #t
      

  4.   

    --显示磁盘信息
    exec master..xp_fixeddrives--检查指定文件是否存在
    exec master..xp_fileexist 'c:\boot.ini'--得到服务器指定目录下的目录及文件更表
    exec master..xp_dirtree 'c:\',0,1 --参数:目录名,目录深度,是否显示文件--显示文件详细信息
    exec master..xp_getfiledetails 'c:\boot.inia'
      

  5.   

    --这样!
    create table #temp (subdirectoty varchar(8000),depth int,files int)insert #temp
    EXECUTE master.dbo.xp_dirtree N'd:\', 1, 1select subdirectoty from #temp where depth = 1 and files = 1drop table #temp