Defina a Data de Criação de um arquivo para a de outro arquivo com o Powershell

2

Alguém pode me ajudar a entender essa linha?

powershell Set-ItemProperty -LiteralPath '[NewVideo]' -Name CreationTimeUtc -Value ('[CreationTimeOfOldVideo]' -as [Datetime])

Estou tentando girar os arquivos de vídeo em 90 graus, preservando a data de criação do arquivo original. Eu encontrei o caminho para fazer a rotação usando ffmpeg, mas estou preso tentando copiar a data de criação para o novo arquivo. Uma pesquisa me fez concluir que isso deveria ser possível com o powershell (do qual eu não conheço quase nada)

Isso é o que eu tenho até agora:

FOR /r %%I in (*.avi, *.mp4) DO CALL :loopbody "%%~fI" "%%~dpnI_%%~xI" "%%~tI"
GOTO :EOF
:loopbody
ffmpeg -i %1 -c:v libx264 -crf 18 -maxrate 4000k -bufsize 4000k -c:a libvo_aacenc -q:a 100 -map_metadata 0 -preset veryslow -tune film -movflags +faststart %2
powershell Set-ItemProperty -LiteralPath '%2' -Name CreationTimeUtc -Value ('%3' -as [Datetime])

O que foi felizmente copiado de outro usuário neste fórum. O problema está na última linha. A variável% 3 é a data do cmd ($ ~ tI) do arquivo antigo, que geralmente é a LastModifiedDate, não a CreationDate. Eu preciso do powershell para definir a data de criação do novo arquivo da mesma forma que a data de criação do arquivo antigo. Eu fiz algumas experiências com [oldfile] .CreationTimeUTC, sem sucesso.

A ajuda é muito apreciada.

    
por Joost 09.11.2015 / 21:09

1 resposta

2

Exemplo de comando Powershell para obter a data de criação do arquivo:

(Get-ChildItem c:\path\yourFile.txt).CreationTime

Exemplo de comando Powershell para definir a data de criação do arquivo:

(Get-ChildItem c:\path\yourFile.txt).CreationTime = '01/01/1900 12:42AM'

Assim como um one-liner a ser usado no script existente como é (em vez da última linha), tente algo como:

powershell (Get-ChildItem '%2').CreationTime = (Get-ChildItem '%1').CreationTime

Isso definirá o horário de criação do novo arquivo (% 2) como o tempo de criação do arquivo antigo (% 1).

Isso pressupõe que %2 contenha o caminho / nome do novo arquivo e %1 contenha o caminho / nome do arquivo antigo. :)

    
por 09.11.2015 / 21:31