Мне нужно установить какой-то сценарий на моем компьютере с Vista, чтобы всякий раз, когда файл добавлялся в определенную папку, он автоматически запускал фоновый процесс, который работает с файлом. (Фоновый процесс - это просто утилита командной строки, которая принимает имя файла в качестве аргумента вместе с некоторыми другими предопределенными параметрами.)
Я хотел бы сделать это, используя встроенные функции Windows, если это возможно, из соображений производительности и обслуживания. Я изучал использование планировщика заданий, но после некоторого изучения системы триггеров у меня не получилось осознать это, и я даже не уверен, что она способна делать то, что мне нужно.
Буду признателен за любые предложения. Спасибо!
windows
windows-vista
automation
scheduled-tasks
bigmattyh
источник
источник
Ответы:
На работе мы используем Powershell для мониторинга папок.
Его можно использовать начиная с Windows Vista (предварительно установлены .NET и PowerShell) без каких-либо дополнительных инструментов.
Этот скрипт отслеживает определенную папку и записывает файл журнала. Вы можете заменить действие и делать все, что хотите, например, вызвать внешний инструмент
Пример файла журнала
StartMonitoring.ps1
Как пользоваться
$watcher.Path = "D:\source"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
StartMonitoring.ps1
Чтобы остановить мониторинг, достаточно закрыть окно PowerShell.
дальнейшее чтение
источник
StartWatching.ps1
окно, чтобы остановить мониторинг. Второй скрипт работает только , если вы включите его в свой первый сценарий , чтобы сохранить переменные$created
,$changed
,$deleted
или$renamed
Вы, кажется, находитесь на правильных строках - вы можете использовать планировщик задач для регулярного запуска файла .bat или .cmd, и этот файл может начинаться со строки, чтобы проверить наличие необходимого файла - фактически я проверил бы на отсутствие файла; например:
Вы также можете изменить этот код и запустить его в цикле с, скажем, задержкой в 1 минуту в цикле, а затем поместить ссылку на пакетный файл в папку автозагрузки Windows:
Существуют и другие способы достижения задержки в зависимости от версии операционной системы Windows и от того, какие дополнительные комплекты ресурсов были установлены, но команда PING в значительной степени работает при любых обстоятельствах. В приведенной выше команде PING 10 фантомных PINGS выполняются с задержкой 6000 мс (то есть: 6 секунд) между ними, вы можете поиграть с этими значениями, чтобы добиться необходимой задержки между циклами пакетного файла.
источник
-n 10
против-n 1
.IF NOT EXIST C:\NO_SUCH_FILE_EVER.foo
. Взломать, но это работает. Спасибо за идею.Спасибо всем за предложения.
Я закончил тем, что написал VBScript, который примерно основывался на идее Linker3000 опрашивать папку и использовать планировщик задач, чтобы он запускался при запуске. В итоге я получил основной синтаксис от этого ресурса и внес необходимые изменения.
Я все еще хотел бы оптимизировать его в какой-то момент, запустив весь сценарий в управляемой событиями системе, но у меня не хватило времени, чтобы поработать над этим, и, ну, это достаточно хорошо.
Вот сценарий, на случай, если кому-то интересно (с несоответствующим сегментом преобразования, отредактированным для ясности):
(Кроме того, я не хочу, чтобы этот вопрос был официально оставлен без ответа - и я не хочу принимать свой собственный ответ на этот вопрос - но я поддержал ответ Linker3000 в качестве благодарности!)
источник
Вы можете посмотреть на DropIt (бесплатно). Программа подходит для обработки входящих файлов некоторыми автоматическими способами. Вы можете перемещать, копировать, удалять и передавать параметры в другие программы командной строки для преобразования изображений, разделения PDF-файлов и т. Д.
источник
Если действие просто копировать измененные файлы, вы можете использовать robocopy / MON
Не знаю, использует ли robocopy FileSystemWatcher или работает путем опроса изменений
источник
Или вы можете использовать Watch 4 Folder . По всей видимости, он бесплатный, переносимый и совместимый с Windows 7. Я не пробовал его, но нашел его с помощью веб-поиска и подумал, что передам его.
Мне также нравится сценарий VBS, также размещенный на сайте.
источник
Также нашел сторожа, который кажется довольно большим, и меньший watchexec, который я не пробовал.
источник
Мы используем коммерческий инструмент (то есть, не бесплатный) Folder Poll с http://www.myassays.com/folder-poll, чтобы сделать это. Это приложение для Windows, которое включает в себя удобное приложение-менеджер для упрощения настройки. Также есть опция конфигурации XML. Фактический опрос папок выполняется как служба Windows (поэтому запускается автоматически при каждом перезапуске). Когда в опрашиваемой папке обнаруживается новый файл, приложение может запускаться автоматически (вы можете указать свои собственные аргументы командной строки). Это может делать другие вещи, такие как копирование / перемещение файлов тоже. Кроме того, активность может быть записана в файл журнала, и есть другие дополнительные операции.
источник