У меня есть три переменные типа даты, переданные из командного файла в виде строк. Когда они переходят к сценарию PS, они видятся как:
20190710 112538
20190710 112538
20190710
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь их проанализировать, я получаю сообщение об ошибке, в котором говорится, что строка не распознается как допустимый DateTime.
Я пытался изменить культуру на инвариантную и без разницы. Я уверен, что что-то упустил. Могу ли я получить помощь в успешном разборе этих строк?
Значения, отправленные отсюда:
set YYYY=%DATE:~-4%
set MM=%DATE:~4,2%
set DD=%DATE:~7,2%
set HH=%time:~0,2%
set NN=%time:~3,2%
set SS=%time:~6,2%
set MS=%time:~9,2%
SET "_oStart=%YYYY%%MM%%DD% %HH%%NN%%SS%%MS%"
SET "_PSScript=C:\xx\xx.ps1"
SET "_oEnd=%YYYY%%MM%%DD% %HH%%NN%%SS%%MS%"
SET "_oDateRan=%YYYY%%MM%%DD%"
SET "_PSCMD=Powershell -ExecutionPolicy Bypass -File "%_PSScript%" -oStart "%_oStart%" -oEnd "%_oEnd%" -oDateRan "%_oDateRan%"
Param(
[String]$oStart,
[String]$oEnd,
[String]$oDateRan
)
[DateTime]$DateRan = [DateTime]::ParseExact($oDateRan, "yyyyMMdd", $null)
[DateTime]$StartTime = [DateTime]::ParseExact($oStart, "yyyyMMdd HHmmssff", $null)
[DateTime]$End = [DateTime]::ParseExact($oEnd, "yyyyMMdd HHmmssff", $null)
Сообщение об ошибке:
Exception calling "ParseExact" with "3" argument(s): "String was not
recognized as a valid DateTime."