Позвольте мне спросить, как правильно увеличить дату в PowerShell.Мы хотели бы получить список дат в формате 'гггг-мм-дд' в указанный период, чтобы передать их другим программам.
Например, когда DateStart = '2018-01-05' и DateEnd ='2018-01-08', тогда список дат должен быть;
2018-01-05
2018-01-06
2018-01-07
2018-01-08
В настоящее время мой сценарий может работать столько, сколько назначенный период в том же месяце, как вышеупомянутый случай, но не может работатьв другом месяце.
#Get_DateRange.ps1
param(
[String] $DateStart,
[String] $DateEnd
)
# Variables Set
$StartDT = [Datetime]::ParseExact($DateStart,"yyyy-mm-dd",$null).AddDays(-1)
$EndDT = [Datetime]::ParseExact($DateEnd,"yyyy-mm-dd",$null)
# Return Date List during designated period
do
{
$StartDT = $StartDT.AddDays(1)
$StartDT.toString("yyyy-mm-dd")
} While ($StartDT -lt $EndDT)
Как неправильный случай, когда DateStart = '2018-01-31' и DateEnd = '2018-02-05', он только возвратил '2018-01-31'.
Я, очевидно, что-то не так с моим сценарием, но пока не знаю.Любой совет будет признателен снова.
Спасибо.
Дополнительная информация: Мы хотели бы использовать вышеуказанный скрипт в другой партии, как это;
FOR /F %%d IN ('%PS_EXE% -ExecutionPolicy ByPass -File "Get_DateRange.ps1" -DateStart %EXT_START_DT% -DateEnd %EXT_END_DT%') DO (
@ECHO %FILE_ID%,%%d,%TARGET_DB%,%TARGET_SCHEMA%,%TARGET_TABLE%,'%%d',gz,%TARGET_DB%,%TARGET_TABLE%>>%EXT_FILE_NAME%
)