Отправить уведомление с помощью R в Windows

#r #postgresql #datatable

#r #postgresql #datatable

Вопрос:

В настоящее время я записываю / обновляю свои таблицы в банке с помощью языка R.:

dbWriteTable (with," table ", table, row.names = FALSE, overwrite = TRUE)

Этот мой скрипт, который обновляет таблицы в R в базе данных postgres, время от времени автоматически запускается задачей Windows.
Мне нужно знать, когда информация записывается или нет, возможно, в формате оповещения на экране или что-то, что бросается в глаза.

примечание: Я знаю, что есть «r.out», но он перезаписывается, не предупреждает о возникновении проблемы или что-то в этом роде.

Ответ №1:

Вы могли бы вызвать Windows Powershell:

  1. Запустите powershell и разрешите выполнение скрипта:
 Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
  
  1. Создайте скрипт уведомления и выполните его с помощью system :
 showMessage <- function(message) {
  MessageScript <-'
    [CmdletBinding()]
    
    $ErrorActionPreference = "Stop"
    
    $notificationTitle = "{message}"
    
    [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null
    $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText01)
    
    #Convert to .NET type for XML manipuration
    $toastXml = [xml] $template.GetXml()
    $toastXml.GetElementsByTagName("text").AppendChild($toastXml.CreateTextNode($notificationTitle)) > $null
    
    #Convert back to WinRT type
    $xml = New-Object Windows.Data.Xml.Dom.XmlDocument
    $xml.LoadXml($toastXml.OuterXml)
    
    $toast = [Windows.UI.Notifications.ToastNotification]::new($xml)
    $toast.Tag = "PowerShell"
    $toast.Group = "PowerShell"
    $toast.ExpirationTime = [DateTimeOffset]::Now.AddMinutes(5)
    #$toast.SuppressPopup = $true
    
    $notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("PowerShell")
    $notifier.Show($toast);'

  system('powershell',input=glue::glue(MessageScript),show.output.on.console=F)
  
}

showMessage(message = 'this is a test')
  

Это работает для меня:
введите описание изображения здесь

Комментарии:

1. я постараюсь, тай!!

2. Смотрите мое редактирование: создана функция, позволяющая легко изменять сообщение