Powershell列出date范围之间的date。

我在PowerShell编写脚本,我需要知道date范围之间的date。

脚本是自动报告。 假设有一堆logging的数据,但数据只在平日,不是周末,也不是假期收集。 我FTP并收集logging的最后15代。

通过脚本,我在Excel打开了最新的报告实例。 一旦工作簿打开,我读了一个包含date的单元格,该date将决定上次运行报表的时间。 (但是今天的数据在明天之前是不可访问的,所以总是晚一天。)

当我比这个date,我使用Get-Date获取当前date。 我需要知道当前date和从Excel中读取date之间的date。 之后,我将需要看看是否有任何一个假期,或者如果他们在周末下降。

 $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。

一旦我有了这些date,我可以检查是否有任何假期,如果他们在周末下降。

如果他们放假了,我可以减去1天(如果报告中的最后一天在星期五下降,那么可以减去2天…我仍然试图弄清楚我将如何去做这件事),并使用switch在我开始parsing并将其放入Excel之前get-content正确数据get-content

所以像这样的东西:

 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

所以我的问题是,我将如何列出date范围内的date?

或者,有没有更简单的方法来做我正在做的事情?

谢谢您的帮助!

也许是这样的:

 $excelDate = get-date "03/07/2014" $currentDate = get-date for ( $i = $excelDate; $i -lt $currentDate; $i=$i.AddDays(1) ) { $i.ToShortDateString() } 

像这样的事情,也许?

 $excelDate = "03/07/2014" $currentDate = "03/14/2014" $start = [Datetime]$excelDate $end = [Datetime]$currentDate While ($start -lt $end) { $start = $start.AddDays(1) $start.ToShortDateString() } 3/8/2014 3/9/2014 3/10/2014 3/11/2014 3/12/2014 3/13/2014 3/14/2014 

这个?

 PS C:\ps> [datetime]$a = "03/07/2014" PS C:\ps> [datetime]$b = "03/14/2014" PS C:\ps> 1..(($b -$a).days-1) | % {$a.AddDays($_)} sabato 8 marzo 2014 00:00:00 domenica 9 marzo 2014 00:00:00 lunedì 10 marzo 2014 00:00:00 martedì 11 marzo 2014 00:00:00 mercoledì 12 marzo 2014 00:00:00 giovedì 13 marzo 2014 00:00:00 

要么

 PS C:\ps> 1..(($b -$a).days-1) | % {$a.AddDays($_).ToShortDateString()} 08/03/2014 09/03/2014 10/03/2014 11/03/2014 12/03/2014 13/03/2014