- b.R NT
- Idade : 28
Comparar Arquivos e Copiar
Qua Out 08, 2014 4:07 pm
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"
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
- André Luiz
- Idade : 23
Re: Comparar Arquivos e Copiar
Qui Out 09, 2014 7:09 am
Aqui a lógica :
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!!.
- 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!!.
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum