Operação recursiva de manipulação de arquivos via PowerShell

O PowerShell é uma ferramenta mais atualizada para administração de sistemas Windows. Através dela, comandos que não podem ser feitos pelo prompt comum podem ser executados – e com várias opções.

Executando o “get-help“, você irá receber uma lista com todas as opções disponíveis.

Hoje, mostrarei um recurso bem interessante no qual utilizo bastante para manutenção de pastas, a chamada cópia recursiva de dados. Como alguns sabem, recursividade é a auto-execução de alguma coisa, até que se acabe. No caso do comando a seguir, traz a mesma ideia, porém, funciona tanto com pastas, quanto arquivos, ou ambos.

No exemplo abaixo, possuo um servidor que tem uma pasta de acesso público, no qual precisa ter um conjunto de pastas e arquivos com modelos de documentos da empresa. Como preciso mantê-la dentro da pasta pública, mas ao mesmo tempo, semanalmente preciso fazer uma limpeza na pasta, para não apagar a pasta toda, apago apenas o que está dentro dela, mas não ela.

Antes de apagar os dados existentes, vamos copiar todo o conteúdo de dentro da “Biblioteca“, onde estão os modelos:

Copy-Item D:\Arquivo\PÚBLICO\Biblioteca D:\Arquivo\TI\Biblioteca -Recurse

Explicando:  O caminho D:\Arquivo\PÚBLICO\Biblioteca é o local da biblioteca em questão. D:\Arquivo\TI\Biblioteca é uma pasta pré-criada por mim para receber a cópia dos modelos. A opção “-Recurse” irá copiar recursivamente os dados, independente de ser pasta ou arquivo.

Sintaxe:  Copy-Item <caminho_origem> <caminho_destino> -Recurse

Lembrando que se tiver espaços dentro do caminho, coloque-o entre aspas duplas.

Agora, para remover tudo o que está dentro da pasta pública, utilizaremos outro comando, mas com sintaxe parecida

Remove-Item D:\Arquivo\PÚBLICO\* -Recurse

A ideia da recursividade é a mesma de Copy-Item.

Sintaxe: Remove-Item <caminho_pasta> -Recurse

Para voltar os modelos, utilizarei o mesmo comando Copy-Item, mas na ordem inversa:

Copy-Item D:\Arquivo\TI\Biblioteca D:\Arquivo\PÚBLICO\Biblioteca -Recurse

E por fim, limparei a pasta temporária (sem apagá-la):

Remove-Item D:\Arquivo\TI\Biblioteca -Recurse

Espero tê-lo ajudado!

Postagem original de Matheus F. Gelinski

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s