根据备用日期执行操作的最简单方法是什么?
基本上,我在Azure文件存储上有2个文件夹( dir1 和 dir2 ),其中需要每天复制(覆盖)-一天在“ dir1”中,第二天在“ dir2”中。
我正在尝试使用PowerShell编写此代码(但对您在C#或VB中的回答感到满意)。
我尝试了偶数/奇数日期逻辑,但是如果月份在31日结束,则会中断-因为下一个日期,即1st也是一个奇数(与365出现在1st之后的年份相同,都是奇数)。
if((Get-Date).Day % 2 -eq 0 ) {"copy files in dir1"} else {"copy files in dir2"}
OR
if((Get-Date).DayOfYear % 2 -eq 0 ) {"copy files in dir1"} else {"copy files in dir2"}
我想另一种方法可能是读取“ 最后修改”文件属性,但是由于包含的文件夹位于Azure云中(在Azure文件存储中),因此我很难读取此文件
我将不胜感激。 TIA
答案 0 :(得分:6)
您可以使用 day而不是某月的天或某天的某天 :
int totalDays = (int)DateTime.UtcNow.Subtract(new DateTime(1970,1,1,0,0,0)).TotalDays;
if (totalDays % 2 == 0) { }
else { }
答案 1 :(得分:1)
这是PowerShell中的解决方案。我对“天数”应用了偶数/奇数逻辑,这是通过 用固定日期减去当前日期 (如其他建议)所计算/生成的,已在PowerShell中进行了编写和测试,并可以确认其工作正常。
if(((Get-Date)-[DateTime]'2018-01-01').Days % 2) {'use dir1'} else{'use dir2'}
OR
$fixedDate = (Get-Date "01/01/2018")
$today = (Get-Date)
$ts = New-TimeSpan -Start $fixedDate -End $today
if(($ts).Days % 2 -eq 0) {"copy files in dir1"} else {"copy files in dir2"}
谢谢。
答案 2 :(得分:1)
您可以只计算自固定时间点以来的天数,然后使用该天数确定偶数或奇数。
if (((Get-Date) - [DateTime]'1970-01-01').Days % 2) {
Write-Host 'odd day'
} else {
Write-Host 'even day'
}