Я совершенно новичок в Powershell, но мне нужно было решение для всех окон для бота Slack, который отслеживает локальные папки.
Я могу использовать CLI для пост провисит успешно следующие две команды:
$postSlackMessage = @{token="";channel="#general";text="Test message";username="Bot User"}
Invoke-RestMethod -Uri https://slack.com/api/chat.postMessage -Body $postSlackMessage
Я также могу контролировать папку, используя скрипт, предоставленный на этот суперпользователя ответ by @nixda.
моя версия это отличное решение не резать. Вот это:
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:Location"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true
### DEFINE ACTIONS AFTER A EVENT IS DETECTED
$action = { $path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
$token = ""
$channel = "$general"
$text = "$changeType, $path"
$username = "Bot User"
$postSlackMessage = @{token=$token; channel=$channel; text=$text; username=$username}
Invoke-RestMethod -Uri https://slack.com/api/chat.postMessage -Body $postSlackMessage
}
### DECIDE WHICH EVENTS SHOULD BE WATCHED + SET CHECK FREQUENCY
$created = Register-ObjectEvent $watcher "Created" -Action $action
$changed = Register-ObjectEvent $watcher "Changed" -Action $action
$deleted = Register-ObjectEvent $watcher "Deleted" -Action $action
$renamed = Register-ObjectEvent $watcher "Renamed" -Action $action
while ($true) {sleep 5}
Я пытался количество различных вариантов этого, и я не уверен, что я делаю неправильно. Я могу заставить скрипт nixda работать и писать в txt-файл, но изменение действия для вызова-RestMethod не работает.
это проблема синтаксиса, которую я не получаю, или что-то большее, что мне не хватает?