Lidar com a interrupção do teclado, executar o bloco final

Eu tenho uma função powershell que processa uma lista de arquivos. Eu uso obegin, process eend blocos para isso:

begin {
    # prepate some stuff
}
process {
    # process each file
}
end {
    # clean up
}

Agora, quando eu batiCtrl + C, todo o script termina no ponto onde estava. Isso não é realmente um problema para a parte do processo, pois isso só fará alterações permanentes no último comando.

Eu ainda quero executar o que está noend bloco para limpá-lo um pouco, e para imprimir algumas estatísticas sobre os arquivos que conseguiram ser processados.

Existe uma maneira limpa de capturar interrupções no teclado, mantendo a estrutura de início / processo / fim?

questionAnswers(2)

yourAnswerToTheQuestion