gpt4 book ai didi

powershell - 如何在 Power Shell 中正确增加不同月份的日期 ('yyyy-mm-dd')

转载 作者:行者123 更新时间:2023-12-03 00:27:29 28 4
gpt4 key购买 nike

请问如何在 PowerShell 中正确增加日期。我们想在指定的时间段内以 'yyyy-mm-dd' 格式获取日期列表,将它们传递给其他程序。

例如,当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%
)

最佳答案

好的,看来 yyyy-mm-dd 真正出错的地方应该是 yyyy-MM-dd

function Get-Dates(){
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
While ($StartDT -lt $EndDT){
$StartDT = $StartDT.AddDays(1)
$StartDT.toString("yyyy-MM-dd")
}

}

Get-Dates -DateStart "2018-11-29" -DateEnd "2018-12-03"

返回

2018-11-29
2018-11-30
2018-12-01
2018-12-02
2018-12-03

关于powershell - 如何在 Power Shell 中正确增加不同月份的日期 ('yyyy-mm-dd'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53039012/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com