Я разбираю файл CSV с использованием сценария PowerShell. Я хотел бы сравнить дату, прочитанную из файла CSV с текущей датой, и выполнить определенный сценарий обработки операций или выхода. Может ли кто-нибудь помочь мне в обсуждении ниже?Дата сравнения от CSV до контрольной даты
Дата в файле CSV, как показано ниже:
Даты:, 2015-12-14
$CurrentTimeStamp = Get-Date
$TradeDate = $CurrentTimeStamp.ToString("yyyyMMdd")
$CheckDate = $TradeDate
TradeDate, как указано выше:
$FileTradeDate = $Cols[1]
$TradeDate = $FileTradeDate.ToString("yyyy-MM-dd")
if ($TradeDate -ne $CheckDate) {
$host.Exit()
} else {
$TradeDate = $FileTradeDate
LogWrite $TradeDate
}
Я получаю ниже ошибки:
Cannot find an overload for "ToString" and the argument count: "1".
At \\multinasdub301\Software\SysAdmin\WebDownloads\ProcessUBSFrescoCCYHDG.ps1:139 char:5
+ $TradeDate = $FileTradeDate.ToString("yyyy-MM-dd")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest
попробовал первый вариант и дал мне ошибку ниже: 'Ошибка метода, потому что [System.Management.Automation.Internal.Host.InternalHost] не содержит метода с именем 'Exit'. В \\ multinasdub301 \ Software \ SysAdmin \ WebDownloads \ ProcessUBSFrescoFI.ps1: 148 char: 6 + $ Host.Exit() + ~~~~~~~~~~~~ + Категория: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: MethodNotFound' –
Это не связано с вашим вопросом, но используйте 'exit' вместо' $ host.Exit() '. Вернее, не выходите, но инвертируйте условие и ничего не делайте, если даты не равны. См. Обновленный ответ. –