Desde que a data e a hora no arquivo de origem estejam em uma posição fixa, como neste exemplo, no início:
> type datetime.txt
2016/12/12 05:16:41.898 PM Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed d
2017/01/16 11:05:05.897 AM a aliquyam erat, sed diam voluptua. At vero eos et accusam et
2017/01/25 02:07:07.457 PM no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
2017/05/17 05:49:08.140 PM m nonumy eirmod tempor invidunt ut labore et dolore magna aliq
2017/06/10 04:40:56.529 AM sto duo dolores et ea rebum. Stet clita kasd gubergren, no sea
Um arquivo de lote pode analisar os elementos para variáveis e verificar AM / PM, e no caso de PM adicionar 12 à hora e colocar junto com os delimitadores alterados (remover AM / PM)
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
For /F "usebackq Tokens=1-8* Delims=/:. " %%A in (
"datetime.txt"
) do If /i "%%H" equ "AM" (
Echo %%A-%%B-%%C %%D:%%E:%%F.%%G %%I
) Else If /i "%%H" equ "PM" (
Set /A Hr=1%%D + 12
Echo %%A-%%B-%%C !Hr:~-2!:%%E:%%F.%%G %%I
) Else Echo no AM/PM found
Exemplo de saída:
> SU_1229322.cmd
2016-12-12 17:16:41.898 Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed d
2017-01-16 11:05:05.897 a aliquyam erat, sed diam voluptua. At vero eos et accusam et
2017-01-25 14:07:07.457 no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
2017-05-17 17:49:08.140 m nonumy eirmod tempor invidunt ut labore et dolore magna aliq
2017-06-10 04:40:56.529 sto duo dolores et ea rebum. Stet clita kasd gubergren, no sea