Eu queria a funcionalidade ‘touch’ de clonar / duplicar as datas do ficheiro a partir de outro ficheiro, nativamente, e ser utilizável a partir de um ficheiro batch. 
Então ‘drag and drop’ video file on to batch file, FFMPEG runs, depois ‘Date Created’ e ‘Date Modified’ do ficheiro de entrada é copiado para o ficheiro de saída. 
Isto pareceu simples no início até achar que os ficheiros em lote são terríveis a lidar com nomes de ficheiros unicode, o PowerShell em linha mexe com os símbolos dos nomes dos ficheiros e escapar-lhes duas vezes é um pesadelo. 
A minha solução foi fazer da parte ‘touch’ um script PowerShell separado que eu chamei ‘CLONE-FILE-DATE’. ps1’ e contém: 
param
(
  [Parameter(Mandatory=$true)][string]$SourcePath,
  [Parameter(Mandatory=$true)][string]$TargetPath
)
(GI -LiteralPath $TargetPath).CreationTime = (GI -LiteralPath $SourcePath).CreationTime
(GI -LiteralPath $TargetPath).LastWriteTime = (GI -LiteralPath $SourcePath).LastWriteTime
Então aqui está o exemplo de utilização dentro do meu ficheiro de lote ‘CONVERT.BAT’: 
%~dp0\ffmpeg -i "%~1" ACTION "%~1-output.mp4"
CHCP 65001 > nul && PowerShell -ExecutionPolicy ByPass -File "%~dp0\CLONE-FILE-DATE.PS1" "%~1" "%~1-output.mp4"
Penso que o PowerShell é legível, por isso vou apenas explicar o lote fala: 
%~dp0 é o directório actual do ficheiro de lote. 
%~1* é o caminho do ficheiro largado no lote sem aspas. 
CHCP 65001 > nul define os caracteres para UTF-8 e engole a saída. 
-ExecutionPolicy ByPass permite correr o PowerShell sem necessidade de modificar a política global, que existe para evitar que as pessoas corram scripts acidentalmente.