我想用这种算法在PS上创建脚本
有一个CSV文件
"C:\Users\admin\Documents\f.csv"
现在是它的格式
"", "promoaction", "promoeffect1", "returneff", "promo_return", "dataload" "1", 18557,18568,0,18557,2019-03-23 17:11:28
每个星期一早晨的11点,csv文件都会更新为新的一行, 例如3月25日可能是这样。
"", "promoaction", "promoeffect1", "returneff", "promo_return", "dataload" “2”, 18558,18568,0,18558,2019-03-25 11:00:00
因此,如果列 promoaction 和 promo_return 的值(请勿触摸其他列,则它们的值并不重要),该怎么做 小于上一个日期(数据加载列)中的值?
例如
"", "promoaction", "promoeffect1", "returneff", "promo_return", "dataload" "3", 1000,18568,0,1000,2019-03-25 11:00:00 (1000 <18558)
并且,如果 promoaction 和 promo_return 列中的值不相等,例如promoaction = 1000和promo_return = 2000。
我指示的所有任务
task1,task2
对于星期二(有许多任务,它在taskschd.msc
上每周星期二运行一次)不应开始,而只是将执行推迟到下一个星期二。
好吧,如果 promoaction 和 promo_return 的值大于上一个日期,并且这些值是promoaction = promo_return,那么一切都很好,请不要关闭任何功能
此ps应该在每个星期一的中午12点运行。如果禁用了任务,请在桌面上创建一个带有警告的.txt文件(“禁用调度程序中的任务”)
如何做,现在我做到了
$sSourceFile = 'C:\my projects\0254\f.csv'
$aCSV = Import-Csv -Path $sSourceFile -WarningAction SilentlyContinue
if ($aCSV.Count -ge 2) {
$lUpperBound = $aCSV.GetUpperBound(0)
$lCurrPromoAction = $aCSV[$lUpperBound].promoaction
$lCurrPromoReturn = $aCSV[$lUpperBound].promo_return
$lPrevPromoAction = $aCSV[$lUpperBound - 1].promoaction
$lPrevPromoReturn = $aCSV[$lUpperBound - 1].promo_return
Write-Host $lCurrPromoAction, $lCurrPromoReturn, $lPrevPromoAction, $lPrevPromoReturn
} else {
Write-Host "Need at least two strings in csv file [$sSourceFile]."
}
但是此脚本只是比较不同的行,但不会禁用taskschd.msc
中的任务,也不会将执行推迟到下一个星期二。
该怎么做,如果行之间存在差异,则禁用指示的任务。