Win Server 2012 PowerShell 4 script para copiar, renomear e tocar em um arquivo

0

Eu criei um script do PowerShell 4 para fazer backup do arquivo Outlook 2013 VbaProject.OTM copiando-o do diretório de produção para um diretório de backup e adicionando um sufixo de nome de arquivo da data e hora atuais. A versão copiada possui a data e hora modificadas de quando o VbaProject.OTM foi salvo pela primeira vez. Passei a manhã inteira pesquisando postagens tentando descobrir como alterar a propriedade Data de modificação do arquivo de backup para a data e a hora atuais, mas tudo o que tentei termina em mensagens de erro. Existe uma maneira simples de conseguir isso?

# FD_VBA_Backup.ps1
$date = get-date -format "MMddyyyy HHmm"
$fnft = "VbaProject - " + $date + ".OTM"
$source = "C:\Users\OCCReportManager\AppData\Roaming\Microsoft\Outlook\VbaProject.OTM"
$dest = "D:\FD Automation VBA Backups\" + $fnft
copy-item $source $dest  # results in eg. "VbaProject - 07202015 0936.OTM"

Houve uma pergunta semelhante sobre como criar um arquivo vazio e definir a propriedade de data. A solução para minha pergunta também estava lá em uma única linha, mas não é fácil de encontrar. O título da outra questão não torna óbvio que a solução pode ser encontrada dentro, como eu preciso alterar a data em um arquivo existente, não criar um novo arquivo. Ref: Equivalente ao 'toque' do Linux para criar um arquivo vazio com o PowerShell? .

    
por Kenneth Berg 20.07.2015 / 17:20

1 resposta

0

Com crédito para @DavidPostill:

# FD_VBA_Backup.ps1
$date = get-date -format "MMddyyyy HHmm"
$fnft = "VbaProject - " + $date + ".OTM"
$source = "C:\Users\OCCReportManager\AppData\Roaming\Microsoft\Outlook\VbaProject.OTM"
$dest = "D:\FD Automation VBA Backups\" + $fnft
copy-item $source $dest  # results in eg. "VbaProject - 07202015 0936.OTM"

(Get-ChildItem $dest).LastWriteTime = Get-Date
    
por 21.07.2015 / 01:57