none
Powershell - Script de bkp RRS feed

  • Pergunta

  • Amigos da comunidade boa noite!

    Sou iniciante em powershell e gostaria de uma ajuda de vocês no seguinte:

    Eu criei um script que efetua o bkp de um determinado arquivo de uma pasta de origem e então ele joga para uma pasta de destino. Até ai tudo bem, porém eu gostaria que após o bkp ser realizado, ele faça uma validação se o arquivo realmente está no diretório de destino antes de ser excluido da pasta de origem.

    Outra coisa, é possivel mudar o nome do arquivo que foi feito bkp para algum tipo de nomenclatura? Ex:

    Arquivo na pasta de origem: Log.txt

    Arquivo na pasta de destino: Log1.txt, Log2.txt e assim por diante

    Isso é possivel?

    Abaixo segue meu script:

    ##########################
    # Script de BKP                                      #
    # Produzido por: Rafael Santos             #
    # Data: 28/04/2015                               #
    ##########################

    #Executa o script sem restrição
     Set-ExecutionPolicy Unrestricted -Force -Scope CurrentUser

    #Lê arquivo de Origem e mostra o tamanho atual
     Get-ChildItem -Force C:\Log

    #Faz bkp de arquivo de Origem na pasta de Destino
     Copy-Item -Path C:\Log\Log.txt -Destination C:\Test

    #Exclui o arquivo do local de Origem
     Remove-Item -Path C:\Log\Log.txt -Recurse

    Desde já muito obrigado pela ajuda.

    Abraços!

    terça-feira, 28 de abril de 2015 22:41

Respostas

  • Pessoal boa tarde!

    Acredito que consegui gerar meu script, dei uma estudada em mais coisas sobre o power shell e gerei esse script que funcionou para o que eu preciso, segue:

    #Executa o script sem restrição
     Set-ExecutionPolicy Unrestricted -Force -Scope CurrentUser

    #Lê arquivo de Origem e mostra o tamanho atual
     Get-ChildItem -Force C:\Log

    #Faz bkp de arquivo de Origem na pasta de Destino e após a cópia exclui o arquivo na pasta de origem
     robocopy C:\Log C:\Test /MOV

    #Seta os parametros de data para ser renomeados no arquivo para não ser sobrescrito na proxima execução
     $name = "log_" + (get-date).Day + (get-date).Month + (get-date).Year.ToString() + ".txt"

    #Renomeia o arquivo de log com os parametros de data setados na variavel $name
     ren C:\Test\Log.txt $name

    Nos meus testes executando normalmente o script funcionou perfeitamente, ele copiou o arquivo para um outro local, renomeou o arquivo incluido a data que foi feito o bkp e excluiu o arquivo na pasta de origem.

    Porém tenho uma pergunta, como eu incluo o mesmo para ser executado pelo task scheduler do windows? Ele aceita a execução de scripts feito em power shell (.ps1)?

    Desde já muito obrigado!

    quarta-feira, 29 de abril de 2015 17:15