При условии, что время даты в исходном файле находится в фиксированной позиции, как в этом примере в начале:
> 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
Пакетный файл может анализировать элементы для переменных и проверять AM/PM, а в случае PM добавить 12 к часу и сложить с измененными разделителями (удаляя 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
Образец вывода:
> 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