Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucasbo2014

Copiar arquivo para outra pasta

Recommended Posts

Olá,

Este é meu primeiro tópico no fórum.... Espero que esteja na área correta.

Bom, estou começando a mexer com scripts no sql server e gostaria que me ajudassem uma dúvida.

Preciso copiar arquivos entre diretórios, porém, consigo copiar mas eu quero copiar dependendo do nome do arquivo, no caso o arquivo é salvado com uma data e, de acordo com esta data, copiar para outra pasta.

Não consigo fazer com que ele copie somente o arquivo com a data que eu quero.

Desde já agradeço se alguém puder me ajudar.

 

Declare @ano varchar(4), @mes varchar(2), @dia varchar(2), @cmd2 varchar(255), @destino varchar(255),

@anoUltimo varchar(255), @mesUltimo varchar(255), @diaUltimo varchar(255),
@cmd int
--separa da data
select @ano = cast (datepart (yyyy,getdate()) as varchar (4))
select @mes = cast (datepart (mm,getdate()) as varchar (2))
select @dia = cast (datepart (dd,getdate()) as varchar (2))
--verifica se o arquivo esta lá, no caso como exemplo o arquivo que estiver com o nome *oDiaDeHoje.txt
exec @cmd = xp_cmdshell 'dir H:\Backup\Teste\*+@dia+.txt'
--retornando 0
if @cmd = 0
--copia para o diretorio de destino
exec xp_cmdshell 'copy H:\Backup\Teste\* + @dia H:\Backup\Teste\copia'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso teria que concatenar o nome do arquivo e nao aconselho fazer isso pelo xp_cmdshell, devido a "n" questoes de seguranca.

 

O que pode ser feito eh um pacote no Integration Services.

 

Qual a versao do SQL em questao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas segue exemplo

 

 

SET NOCOUNT ON;
 
DECLARE @sql NVARCHAR(4000), @caminho sysname, @CaminhoApaga sysname, @Cmd INTEGER
 
SET @Caminho = CONVERT(VARCHAR,DAY(GETDATE()),112)
 
set @sql = N'dir d:\Teste'+@Caminho+'.txt'
 
EXEC @cmd = xp_cmdshell @sql, NO_OUTPUT
 
IF @cmd = 0
BEGIN
 
set @sql = N'copy D:\Teste'+@Caminho+'.txt d:\docs\'
 
EXEC xp_cmdshell @sql
 
end
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.