Batch-Satti
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Batch-Satti

Você não está conectado. Conecte-se ou registre-se

Comparar Arquivos e Copiar

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Comparar Arquivos e Copiar Empty Comparar Arquivos e Copiar Qua Out 08, 2014 4:07 pm

b.R NT



Gostaria de um Script que comparasse uma lista com nomes em um arquivo .txt com uma pasta "origem"

Se a "origem" tiver alguma pasta cujo nome esteja no arquivo .txt copiará para uma outra pasta "destino"

encontrei esse script que se encontrado ele cria um arquivo COPIADO.log com os nomes, e se não encontrado cria FALHA.log.

mas não consigo fazer com que copie a pasta em si para o "destino"
Código:
@ECHO OFF
SET ORIGEM=C:\temp\original
SET DESTINO=C:\temp\backup

::LIMPA OS LOGS
DEL COPIADO.LOG /Q
DEL FALHA.LOG /Q

for /F "tokens=*" %%A IN (lista.txt) DO CALL :COPIA %%A
GOTO :EOF

:COPIA
echo Verificando %1 ...
IF EXIST %ORIGEM%\%1 (
   :: se existe copia e grava no log copiado
   copy %ORIGEM%\%1 %DESTINO% /Y

   echo %1 >> copiado.log

   :: VAI PARA O PROXIMO ARQUIVO
   GOTO :EOF
)

:: se não existe apenas grava no log falha
echo %1 >> falha.log

2Comparar Arquivos e Copiar Empty Re: Comparar Arquivos e Copiar Qui Out 09, 2014 7:09 am

André Luiz

André Luiz

Aqui a lógica :
Código:
For /f "delims=" %%i in (' dir/s/b ') do For /f "delims=" %%w in (' Findstr /I /C:"%%i" "Arquivo.txt" ') do If /I "%%~fi"=="%%~w" ( Copy %%w "%userprofile%\desktop" )

Bom agora fica por você na hora de criar o arquivo, com a informação de cada arquivo!.
Vou dar um explicada bem básica.
O primeiro "For" vai ver os arquivos no diretório atual (Caso queira Mude)
O segundo "For" vai ler o arquivo.txt independente de maiúsculo ou minusculo, e depois ele joga para o If, e no if que mágica acontece, ele vai verificar os dois se um for igual ao outro ele copia para o desktop.

::Dir /S Para visualizar arquivos nas pasta atual e subpastas.
::Dir /B Para visualizar arquivos sem informações detalhadas. (Os dois jutos é obvio né!)
::If /I Serve para fazer comparações independentemente se maiúscula ou minuscula.
::~f Essa é um expansão de variável, que pode ser usado no for e no call.

OBS::. Na hora de salvar o arquivo dentro do .txt, é importante que ele esteja com o caminho inteiramente completo e se o caminho do arquivo tiver alguns acentos, então é preciso que todos estejam com os acentos reconhecido pelo Cmd. Exemplo : ã > Æ
Espero ter ajudado! até a próxima fica com Deus!!.

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos