visualiza todos los archivos contenidos en una carpeta de Windows
desde SQL-T
--
==============================================
-- Autor: MANUEL OMAR OLGUÍN HERNÁNDEZ
-- Fecha: 2017 OCTUBRE 27
-- Versión: 1.0
-- Descripcion: VISUALIZA EN UNA TABLA LOS ARCHIVOS CONTENIDOS EN UNA
CARPETA DE WINDOWS ;)
--
-- EXEC Generic.up_GetFileNames
@Path = 'C:\Trace\';
--
=================================================
ALTER
PROCEDURE [Dictionary].[up_GetFileNames]
@Path NVARCHAR (300)
AS
DECLARE
@strSQL NVARCHAR (500)
-- no acepta espacios
en los nombres de las carpetas
SET @strSQL = 'dir ' + @Path;
-- se realizan varios filtros tanto en
columnas como ya en el texto de cada fila para obtener el nombre del pdf
correcto
declare
@temptable table ([FileName]
nvarchar(2000))
Insert into @temptable
EXEC
xp_cmdshell @strSQL;
DECLARE
@Prefijo INT
-- prefijo es el número de caracteres a
eliminar iniciando desde la izquierda
-- es para quitar fechas, espacios ,
horas, número de bytes
SET
@Prefijo = 41
SELECT
NombreArchivo =
ltrim(rtrim(SUBSTRING([FileName], @Prefijo, LEN(FILENAME)-@Prefijo+1)))
into #temp
from @temptable
where [FileName] not like '%volume%'
and [FileName] is not null
and [FileName] not like '%bytes%'
AND [FileName] NOT LIKE '%Directorio de%'
AND [FileName] NOT LIKE '%<DIR>%'
select
--Orden =
ROW_NUMBER() OVER (ORDER BY NOMBREARCHIVO)
[FileName] = NombreArchivo
,[Type] = SUBSTRING (NombreArchivo, CHARINDEX('.',NombreArchivo,LEN(NombreArchivo)-5)+1,4)
from #temp order by NombreArchivo
drop
table #temp
No hay comentarios.:
Publicar un comentario