我正在使用PowerShell
编写脚本,需要知道一段时间内的日期。
这个脚本用于自动化报告。假设有一堆已记录的数据,但是只在工作日收集数据,周末和节假日不收集。我通过FTP收集最近15代的记录。
使用脚本打开最新的Excel
报告。一旦工作簿打开,我读取一个包含日期的单元格,该日期将确定报告上次运行的时间。(今天的数据直到明天才能访问,因此始终落后1天。)
然后,我使用Get-Date
获取当前日期。我需要知道当前日期和从Excel中读取的日期之间的日期。之后,我需要查看这些日期是否落在节假日或周末。
$excelDate = $excel.Cells.Item(1489, 1).Value()
$currentDate = Get-Date
假设有
$excelDate = "03/07/2014"
和 $currentDate = "03/14/2014"
,我想获取的是 03/08/2014、03/09/2014、03/10/2014、03/11/2014、03/12/2014 和 03/13/2014 这些日期。一旦获得这些日期,我就可以检查它们是否是节假日,如果它们是在周末,则进行相应的操作。如果它们是在假期,则减去1天(如果报告的最后一天是星期五,则减去2天),并使用 switch
来获取正确数据的内容,然后开始解析并将其放入 Excel 中。switch($daysMissed)
{
1 {Write-Host "The Report is currently up to date!!" }
2 {$data = get-content C:\Users\$userName\Desktop\Report\data\data.txt }
3 {$data = get-content C:\Users\$userName\Desktop\Report\data\data2.txt }
4 {$data = get-content C:\Users\$userName\Desktop\Report\data\data3.txt }
5 {$data = get-content C:\Users\$userName\Desktop\Report\data\data4.txt }
6 {$data = get-content C:\Users\$userName\Desktop\Report\data\data5.txt }
7 {$data = get-content C:\Users\$userName\Desktop\Report\data\data6.txt }
8 {$data = get-content C:\Users\$userName\Desktop\Report\data\data7.txt }
9 {$data = get-content C:\Users\$userName\Desktop\Report\data\data8.txt }
10 {$data = get-content C:\Users\$userName\Desktop\Report\data\data9.txt }
11 {$data = get-content C:\Users\$userName\Desktop\Report\data\data10.txt }
}
一旦我有了正确的数据,我就会在 Excel
中进行一系列操作并完成当天的报告,然后我会执行 $daysMissed = $daysMissed - 1
。
那么我的问题是,如何列出一段日期范围内的日期?
或者,有没有更简单的方法来做我正在做的事情?
感谢您的帮助!
$i=$i.AddDays(1)
。 - Hunter Eidson