脚本以禁用taskchd.msc

时间:2019-03-24 14:19:51

标签: powershell

我想用这种算法在PS上创建脚本

  1. 有一个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
    
  2. 因此,如果列 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中的任务,也不会将执行推迟到下一个星期二。

该怎么做,如果行之间存在差异,则禁用指示的任务。

0 个答案:

没有答案