Obsługa przerwania klawiatury, wykonanie bloku końcowego
Mam funkcję PowerShell, która przetwarza listę plików. używambegin
, process
iend
bloki do tego:
begin {
# prepate some stuff
}
process {
# process each file
}
end {
# clean up
}
Teraz, gdy trafięCtrl + C, cały skrypt kończy się dokładnie w miejscu, w którym był. To nie jest problem dla części procesu, ponieważ spowoduje to tylko trwałe zmiany w ostatnim poleceniu.
Jednak nadal chcę wykonywać to, co jest wend
zablokuj, aby trochę posprzątać i wydrukować statystyki dotyczące plików, które udało się przetworzyć.
Czy istnieje czysty sposób na przechwytywanie przerw w klawiaturze, zachowując strukturę początkową / procesową / końcową?