Tips - Copiando um conjunto de arquivos de uma pasta para outra usando o VBA









































Copiando um conjunto de arquivos de uma pasta para outra usando o VBA com comandos de DOS*


DOS (Disk Operating System) é um sistema operacional bastante antigo, lançado na década de 1980. Apesar da "idade", muitas de suas funcionalidades têm aplicação até nos dias de hoje. Sua utilização se baseia, essencialmente, em linhas de comandos, isto é, na digitação de instruções por parte do usuário. 


Para nós, da velha guarda, não há nada como usar o velho e bom prompt# de comando. Isso dá uma satisfação danada para qualquer programador, que consegue transitar movendo-se em torno dos arquivos, digitando alguns comandos no DOS.



# Uma expressão bastante comum relacionada ao DOS é o prompt de comando. Como o DOS é um sistema baseado na execução de comandos digitados pelo usuário. O prompt, portanto, é o sinal de prontidão do sistema, pois indica que o computador, naquele momento, está apto a receber instruções, isto é, os comandos que o usuário pode digitar. O prompt também indica sua localização, ou seja, em que partição (unidade de armazenamento) e pasta está trabalhando naquele instante. Veja o exemplo:



C:\Bernardes>_


A linha acima indica que o sistema está, no momento, considerando a unidade C:\, na pasta Bernardes. Ao lado do sinal '>' há um "traço" que pisca constantemente, chamado cursor. Esse caractere informa em que ponto da tela vão aparecer as instruções que o usuário digitar.


O que segue é um código simples, que move todos os arquivos de uma pasta para outra usando XCOPY. Podemos usar todas as opções de XCOPY com o VBA.

Sub Copy_Bunch_Of_Files()

Shell "cmd /c xcopy /y c:\temp\*.* C:\Temp\Backup"

End Sub


Seguem outros comando do DOS:


RMDIR ou RD

Comando que remove um diretório a partir da unidade corrente. O diretório somente será eliminado se não houver nenhum arquivo ou pasta em seu interior. Exemplos:


C:\>rd Bernardes\hardware - remove o diretório hardware de Bernardes.


C:\>rd Bernardes - remove o diretório Bernardes.


TREE

Comando que exibe graficamente a árvore de diretórios a partir do diretório-raiz para que o usuário tenha a organização hierárquica do seu disco. Esse comando pode conter algumas variações baseadas em parâmetros:


/F - exibe a árvore de diretórios mostrando também os arquivos existentes dentro deles;


/A - instrui o comando tree a usar ASCII em vez de caracteres estendidos.


Exemplo:


C:\>tree /f


CHKDSK

Comando que checa a integridade e as especificações do disco mostrando informações sobre este na tela, por exemplo:


C:\>chkdsk: - checa o disco rígido C:\.


MEM

Digite mem no prompt e informações atuais sobre a memória do computador serão exibidas.


RENAME ou REN

Comando que permite ao usuário alterar o nome de um arquivo. Basta digitar rename (ou ren) seguido do nome atual do arquivo e, depois, a denominação que este deverá ter. Se o arquivo em questão não estiver no diretório atual, basta informar seu caminho antes. Exemplos:


C:\>ren homer.doc bart.doc - muda o nome do arquivo de homer.doc para bart.doc.


Também é possível utilizar o caractere * (asterisco) para, por exemplo, renomear extensões de arquivos:


C:\>ren *.jpg *.gif - esta instrução altera a extensão de todos os arquivos do diretório atual que terminam em .jpg.


COPY

Comando que copia um arquivo ou grupo de arquivos de uma pasta para outra. Para isso, o usuário deve digitar o comando copy mais sua localização atual e, em seguida, seu caminho de destino. Por exemplo, para mover o arquivo Bernardes.doc de c:\hardware\ para d:\artigos\ basta digitar:


C:\>copy c:\hardware\Bernardes.doc d:\artigos


Note que, com este comando, também é possível utilizar asterisco (*) para substituir caracteres. Por exemplo:


C:\>copy c:\*.doc c:\Posts\software - esse comando copia todos os arquivos que terminam em .doc de C:\ para C:\Posts\software.


DISKCOPY

Comando que permite copiar o conteúdo de um disquete para outro de igual capacidade. Para copiar, por exemplo, o conteúdo do disco representado pela unidade A para a unidade B, basta digitar:


C:\>diskcopy a: b:


É possível checar se a cópia foi realizada com sucesso digitando o parâmetro /V no final do comando:


C:\>diskcopy a: b: /v


É importante frisar que este comando não funciona para cópias de conteúdo de discos rígidos.


XCOPY

Comando utilizado para copiar arquivos e árvores de diretórios com base em determinados critérios. Estes podem ser determinados pelos seus parâmetros. Eis alguns:


/D - copia arquivos que foram alterados a partir de uma data que o usuário deve informar logo após o parâmetro. Se a data não for inserida, apenas arquivos modificados a partir da data de alteração do local de destino é que serão copiados;


/P - solicita confirmação ao usuário antes de copiar cada arquivo;


/S - copia diretórios, desde que não estejam vazios. Para diretórios nesta última condição, basta informar /E /S;


/U - copia apenas arquivos que já existem no diretório de destino.


Exemplo:


C:\>xcopy /e /s c:\Bernardes d:\ - copia o diretório Bernardes para a unidade D:\.


Esse comando possui vários parâmetros. Digite xcopy /? para conhecer todos.


MOVE

Comando que tem duas funções: renomear diretórios ou mover arquivos de uma pasta para outra. Exemplos:


C:\>move A B - renomeia o diretório A presente em C:\ para B.


C:\>move d:\aula *.* e:\ - faz a movimentação de todos os arquivos presentes em D:\aula para a unidade E:\, deixando assim o diretório D:\aula vazio.


TYPE

Comando que tem a função de exibir o conteúdo de determinado arquivo, quando possível. Por exemplo:


C:\>type config.sys - exibe o conteúdo do arquivo config.sys na tela.


FORMAT

Comando que executa a formatação do disco rígido ou de uma partição deste, isto é, em poucas palavras, prepara a unidade para uso. É importante frisar que se uma unidade já em uso for formatada, todo o seu conteúdo será perdido ou só poderá ser recuperado com programas especiais. O comando format também conta com parâmetros. Eis alguns:


/Q - formata rapidamente o disco da unidade;


/U - formata o disco independente da condição;


/? - fornece mais detalhes sobre o comando, assim como todos os seus parâmetros.


A sintaxe do comando é: format [unidade:] /Q /U /S /4


Exemplo:


C:\>format a: - formata o disco na unidade A:\.


UNFORMAT

Caso aconteça de você formatar um disco por acidente, o DOS permite a recuperação das informações (a não ser que você tenha utilizado o parâmetro /U na formatação). O comando unformat é o que tem essa função, que pode ser complementada pelo uso de parâmetros. Eis alguns:


/L - recupera as informações de um disco, mostrando a lista de arquivos e diretórios;


/TEST - lista todas informações, mas não refaz o disco.


A sintaxe do comando é: unformat [unidade:] /L /TEST


Exemplo:


C:\>unformat a: - "desformata" o disco representado pela unidade A:\.



DEL ou DELETE

Comando que executa a eliminação de arquivos. Por exemplo:


C:\>del c:\A\B.doc - apaga o arquivo B.doc presente na pasta A;


C:\>del c:\A\*.doc - apaga todos os arquivos .doc da pasta A;


C:\>del c:\A\*.* - apaga todos os arquivos da pasta A.


UNDELETE

Quem é que nunca passou pela experiência de apagar um arquivo por engano? O DOS conta com o comando undelete justamente para esses casos. A instrução permite recuperar um ou mais arquivos apagados, quando possível. Para utilizá-lo, basta digitar undelete seguido do caminho do arquivo, por exemplo:


C:\>undelete c:\A\B.doc - recupera o arquivo B.doc que estava presente na pasta A.


DELTREE

Este é um comando que elimina um ou mais subdiretórios a partir do diretório corrente. Utilizando este comando, o usuário poderá apagar subdiretórios com mais rapidez. Como precaução, a instrução sempre exibirá uma mensagem perguntando se o usuário realmente deseja realizar tal tarefa. Para executá-lo, basta digitar deltree seguido do caminho do arquivo, por exemplo:


C:\>deltree A - apaga a pasta A presente em C:\.


Veja outros códigos:

VBA Excel | Extraindo a Data de uma Célula com Data e Horário - Remove Date from Date and Time VBA Excel | Converta Tudo para Maiúscula - Convert to Upper CaseVBA Excel | Contando Palavras na Planilha - Word Count from Entire Worksheet VBA Excel | Removendo Decimais dos Números - Remove Decimals from Numbers

VBA Excel |  Multiplique todos os Valores por um Número - Multiply all the Values by a Number VBA Excel | Calculando a Raiz Cúbica - Calculate the Cube Root

VBA Excel | Adicionando Letras de A até Z - Add A-Z Alphabets in a Range VBA Excel | Convertendo Numerais Romanos em Arábicos - Convert Roman Numbers into Arabic Numbers

VBA Excel | Converta todos os Números Negativos em Positivos - Remove Negative Signs VBA Excel | Preencha com zeros as Células em Branco - Replace Blank Cells with Zeros

Leia também:

eBook: Série DONUT PROJECT 2015: Projetos e Códigos de Visual Basic for Applications - Autor: André Luiz Bernardes  eBook: Série Top 10 Funções: Top 10 Funções VBA para o Microsoft Excel - Autor: André Luiz Bernardes

eBook: Série Funções Poderosas: 13 Funções Poderosas no MS Excel - Autor: André Luiz Bernardes  eBook: Série Visual Basic For Application: Criando Logs de acesso: Dicas e Códigos de Visual Basic for Applications - Autor: André Luiz Bernardes

eBook: Série VBA Tips: Rastrei seus Dashboards, Scorecards, Reports, Relatórios, Planilhas e Aplicações - Dicas e Códigos - Autor: André Luiz Bernardes  eBook: Série Data Science: Big Data, Como? - Autor: André Luiz Bernardes

eBook: Série Smarter Analytic: 5 Previsões de Big Data - Autor: André Luiz Bernardes


Conheça também:

DONUT PROJECT 2021 - VBA Function:  Como Rastrear o Google Maps (Coordenadas Geográficas) no VBA Excel?

DONUT PROJECT 2021 - VBA Function:  Crie Acrônimos a partir de Strings de Texto

DONUT PROJECT 2021 - VBA Function:  Convertendo uma Matrix num Vetor - Convert Matrix to a Vector

DONUT PROJECT 2021 - VBA Function:  Como tornar o Formulário Transparente no MS Excel?

DONUT PROJECT 2021 - VBA Function:  Faça Buscas no Google a Partir da Célula do MS Excel - Search Google From a Cell

DONUT PROJECT 2021 - VBA Function:  Decompondo um Nome nas Dimensões de uma Matriz

DONUT PROJECT 2021 - VBA Function: Extraindo o Último Sobrenome de um Nome Completo ou a Última Palavra de uma Frase

DONUT PROJECT 2021 - VBA Function:  Extraindo o Segundo Nome de um Nome Completo ou a Segunda Palavra de uma Frase

DONUT PROJECT 2021 - VBA Function: Extraindo o Primeiro Nome ou  a Primeira Palavra de uma Frase

Série Piece of Cake

Séries Donut


Comente e compartilhe este artigo!


brazilsalesforceeffectiveness@gmail.com

Nenhum comentário:

Postar um comentário

diHITT - Notícias