【发布时间】:2014-04-19 20:28:17
【问题描述】:
我正在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 天......我仍在试图弄清楚我将如何做到这一点。),并且在我开始解析并将其放入Excel 之前,使用正确数据的switch 到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。
所以我的问题是我将如何准确列出日期范围之间的日期?
或者,有没有更简单的方法来做我正在做的事情?
感谢您的帮助!
【问题讨论】:
标签: excel date powershell