如何在powershell中获取指定月份的最后一天

iih3973s  于 2023-01-20  发布在  Shell
关注(0)|答案(3)|浏览(129)

我需要获取一个月前的最后一天从指定。我有一个字符串(文件名),其中包含一个日期在其结束。我需要捕捉日期(已经完成),并获得上个月的最后一天。例如,字符串是“proemail vytvoreni_9.2017 2017-10-16”,所以我需要得到30 th September 2017。这是我现在有:

$Report = Read-Host "File name"
$Date = [datetime]$Report.Substring($Report.get_Length()-10)
$Last_month = $Date.AddMonths(-1)
$Date_text = $Last_month.ToString().Substring(3,7)
$month_year = ($Date_text.Split("."))
$days_count = [datetime]::DaysInMonth($month_year[1],$month_year[0])
$days_count = $days_count.ToString()
$month = $month_year[0]
$year = $month_year[1]
$Date_limit = [DateTime]($month,$days_count,$year)

除了最后一行返回以下错误外,其他所有操作都正常:无法将“System.Object[]”类型的“System. Object []”值转换为“System.DateTime”类型。我尝试通过.ToString()方法将$month和$year转换为字符串,但没有帮助

9bfwbjaz

9bfwbjaz1#

(Get-Date).AddDays(-$(Get-Date).Day)

Saturday, September 30, 2017 2:36:19 PM

((Get-Date).AddDays(-$(Get-Date).Day)).Day

30
4bbkushb

4bbkushb2#

$filename = "proemail vytvoreni_9.2017 2017-10-16"

# Take the date from the filename
$sub = $filename.Substring($filename.Length-10)

# make it into a date format
$filedate = Get-Date -Date $sub

# take that date 2017-10-16 and substracts its own days so in this case substract 16 days, then show me the date
(($filedate).AddDays(-$filedate.Day)).Date

输出:
2017年9月30日星期六0:00:00

qvtsj1bj

qvtsj1bj3#

我已经研究了这个问题和不同的解决方案一段时间,这里是我的答案。
创建所需的任何日期。以下是获取所需月份的简单方法。
$date = [日期时间]::解析(“11/2019”)
然后简单地添加下一个月并删除一天。p
$日期.添加月份(1).添加天数(-1)
希望这对其他人有帮助。

相关问题