首页 > 解决方案 > 监视 Windows 文件夹中添加的 PDF 文件

问题描述

我一直在尝试几种不同的方法来完成这个看似简单的任务,但似乎没有任何效果。

我想将 PDF 文件添加到 Windows 10 机器上的文件夹中,并在发生这种情况时执行脚本。该脚本最终是 illustrator 的扩展 javascript 文件,但是,如果需要,我可以从命令行/VBS/Powershell 或其他选项运行此文件。

我首先尝试使用 Windows 任务计划程序并成功添加了一个事件侦听器,理论上它应该执行我作为参数提供的 PowerShell 脚本。我看到任务正在运行,但它似乎没有做任何事情。以下是配置的样子: 看门狗任务计划程序

此外,我尝试使用 FileSytemWatcher 创建一个 Windows 服务来完成相同的任务。我已经设法实现,每当将文件添加到文件夹中时,服务都会将此文件复制到另一个文件夹中。这证明您在下面看到的代码至少是被执行的。但是,执行 PowerShell 脚本或执行命令行指令的具体操作似乎不起作用。这是代码:

private void OnChanged(object sender, FileSystemEventArgs e)
{
    Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
    File.Copy(e.FullPath, ConfigurationManager.AppSettings["UpdatePath"] + "\\" + Path.GetFileName(e.FullPath), true);
    ProcessStartInfo processInfo = new ProcessStartInfo
    {
        WindowStyle = ProcessWindowStyle.Normal,
        CreateNoWindow = true,
        UseShellExecute = false,
        FileName = "PowerShell.exe",
        Arguments = "-NoExit -noprofile -executionpolicy bypass -file \"\"\"C:\\Users\\Fabian\\Desktop\\saturation.ps1\"\"\""
        //Arguments = "\"C:\\Program Files\\Adobe\\Adobe Illustrator 2021\\Support Files\\Contents\\Windows\\Illustrator.exe\" -r C:\\Users\\Fabian\\Desktop\\ApplySaturationFinal.jsx"
    };
    Process.Start(processInfo);
}

命令行的注释行(FileName =“cmd.exe”)。

自然地,我尝试过自己执行 powershell 脚本和命令行指令,它们工作得很好。这里的问题是如何创建一个不断侦听新 PDF 文件并相应地执行指示脚本的各种后台服务。

标签: windowswindows-servicesscheduled-tasksfilesystemwatcherwindows-task-scheduler

解决方案


推荐阅读