Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - скрипт отключения всех заданий, по заданным условиям

Ответить
Настройки темы
PowerShell - скрипт отключения всех заданий, по заданным условиям

Старожил


Сообщения: 292
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip f.zip
(233 байт, 2 просмотров)
Подскажите, как написать скрипт на 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 файл пополняется новой строчкой
например, 25 числа может быть так.
"","promoaction","promoeffect1","returneff","promo_return","dataload"
"2",18558,18568,0,18558,2019-03-25 11:00:00

2. Так вот, как сделать, что если по колонкам promoaction и promo_return (другие колонки не трогаем, их значение не важно)
значение меньше чем в предыдущую дату(dataload колонка)
Ну, например
"","promoaction","promoeffect1","returneff","promo_return","dataload"
"3",1000,18568,0,1000,2019-03-25 11:00:00 (1000<18558)

а также, если в какой то из колонок promoaction и promo_return значения не равны, например в promoaction =18558,, а в promo_return=18559,

то все задание которые запланированы на вторник (там есть задания их много, они раз в неделю во вторник в taskschd.msc запускаются)
не должны запуститься, а просто перенести выполнение на следующий вторник.

Ну а если в promoaction и promo_return значения больше чем в предыдущую дату, и значения promoaction = promo_return
то все в порядке, ничего отключать не надо

данный ps должен запускаться каждый пн в 12 часов дня. В случае, если задания были отключены, на рабочем столе создать .txt файл с предупреждением ("задания в планировщике отключены")

Кто-нибудь может помочь сделать такой скрипт?

Отправлено: 18:01, 23-03-2019

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


kontox, какая операционная система? И что значит:
Цитата kontox:
если по колонкам promoaction и promo_return … значение меньше … а также, если … значения не равны »
?! Если меньше — то, ясен пень, они будут не равны. И как именно «меньше»?! По обеим полям меньше одновременно? По любому из полей?

Так-то сравнение не представляет сложностей:
Код: Выделить весь код
$sSourceFile = 'C:\Мои проекты\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]."
}
берите и сравнивайте, как хотите.

Но мне категорически не нравится Ваша идея с отключением всех заданий.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:31, 24-03-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 292
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Я проверю . Да ничего страшного не будет. Система у меня win 2012x64
но если вы думаете, что лучше все задания не отключать, то можно ли вставить название заданий. которые точно можно
например, задание1,заданния2...

Отправлено: 14:51, 24-03-2019 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата kontox:
Система у меня win 2012x64 »
Если я правильно понимаю, командлет Get-ScheduledTask требует PowerShell 6. Посмотрите, так ли это, и, если — да, то встанет ли на неё PowerShell 6 (надо полагать, ответ тоже — да). Затем можете попробовать сами, либо подождать решения от более опытных коллег (я устанавливать не буду).

P.S. Можете руководствоваться обзорной статьёй: Weekend Scripter: Use PowerShell to Document Scheduled Tasks | Scripting.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:18, 24-03-2019 | #4


Старожил


Сообщения: 292
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, а где скачать powershell 6? у меня судя по всему первая %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

Отправлено: 15:23, 24-03-2019 | #5

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата kontox:
где скачать powershell 6? »
Первая же ссылка в Яндексе при поиске по этим трём словам, ведёт как ни странно на сайт Микрософт: Установка PowerShell Core в Windows...

-------
Mikhail Zhilin

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:48, 24-03-2019 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата kontox:
у меня судя по всему первая %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe »
У Вас никак не может быть первая . v1.0 в имени пути — это просто демонстрация непродуманной концепции от Microsoft.

Отправлено: 16:15, 24-03-2019 | #7


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


Цитата Iska:
Если я правильно понимаю, командлет Get-ScheduledTask требует PowerShell 6. »
не совсем. Достаточно PowerShellVersion = '3.0', что записано в самом модуле...

-------
scio me nihil scire. Ѫ


Отправлено: 18:01, 24-03-2019 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


YuS_2, что надо сделать, чтобы стал доступен данный командлет? Что-то импортировать, как я понимаю?

Отправлено: 18:38, 24-03-2019 | #9


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


Цитата Iska:
что надо сделать, чтобы стал доступен данный командлет? »
Боюсь, что только поменять версию ОС... ибо, если, конечно, не ошибаюсь, то ScheduledTask может быть доступен только с версии Win 8.1
В предыдущих версиях ОС, есть модуль PSScheduledJob, но у него возможностей поменьше...

-------
scio me nihil scire. Ѫ


Отправлено: 20:03, 24-03-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - скрипт отключения всех заданий, по заданным условиям

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Скрипт для переноса файлов по заданным параметрам Kakazabr Скриптовые языки администрирования Windows 7 27-04-2016 21:04
Разное - [решено] Планировщик заданий (куча заданий по умолчанию) - а надо ли? Pepsi_nsk Microsoft Windows 7 10 24-07-2014 19:12
VBS/WSH/JS - Переименование файла по условиям bombording Скриптовые языки администрирования Windows 1 24-03-2014 16:17
PowerShell - Find по разным условиям dosperados Скриптовые языки администрирования Windows 7 07-02-2012 12:14
[решено] Нужен скрипт для отключения всех сессий и открытых файлов Butunin Klim Microsoft Windows NT/2000/2003 1 15-07-2006 01:25




 
Переход