BRB*_*RBT 5 excel powershell date
我正在写一个脚本PowerShell,我需要知道一系列日期之间的日期.
该脚本用于自动化报告.假设有一堆记录的数据,但数据只在工作日收集,没有周末,也没有假期.我FTP并收集记录的最后15代.
使用脚本,我打开了最新的报告实例Excel.打开工作簿后,我读取了一个包含日期的单元格,该日期将确定上次运行报表的时间.(今天的数据要到明天才能获得,所以它总是落后一天.)
当我没有那个日期时,我Get-Date用来获取当前日期.我需要知道当前日期和我从Excel读入的日期之间的日期.之后,我将需要查看是否有任何日期在假期,或周末是否已经下降.
$excelDate = $excel.Cells.Item(1489, 1).Value()
$currentDate = Get-Date
Run Code Online (Sandbox Code Playgroud)
让我们说吧 $excelDate = "03/07/2014"
和 $currentDate = "03/14/2014"
我想得到的是2014年8月3日,03/09/2014,3/10/2014,3/11/2014,03/12/2014,03/13/2014.
一旦我有了这些日期,我可以检查一下他们是否有假期,以及他们是否已经度过了一个周末.
如果他们度假,我可以减去1天(如果报告中的最后一天在星期五下降,则为2天......我仍在试图弄清楚我将如何做到这一点.),并使用一个switch来get-content在我开始解析并将其放入之前的正确数据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 }
}
Run Code Online (Sandbox Code Playgroud)
一旦我掌握了适当的数据,我会在那里做一堆内容Excel并完成那天的报告,然后我会去$daysMissed = $daysMissed - 1.
所以我的问题是我如何在一系列日期之间列出日期?
或者,有更简单的方法来做我正在做的事情吗?
谢谢您的帮助!
也许是这样的:
$excelDate = get-date "03/07/2014"
$currentDate = get-date
for ( $i = $excelDate; $i -lt $currentDate; $i=$i.AddDays(1) ) {
$i.ToShortDateString()
}
Run Code Online (Sandbox Code Playgroud)