繁体   English   中英

Windows Task Scheduler Powershell脚本完成并重新启动

[英]Windows Task Scheduler Powershell Script complete and restart

我创建了一个使用FileSystemWatcher的脚本并创建了一个作业。 将文件添加到文件夹后

  1. 重命名新添加的文件
  2. 将文件移动到新目的地
  3. 开始下游工作流程

一旦完成,就结束工作。

我要做的是使用Windows Task Scheduler来检查作业完成后是否可以立即再次运行。 这样,如果一个人放下一个文件夹,那么另一个人也可以这样做。

另外,如果还有另一种方式可以进行这项工作,我很乐意使用它。

我试图安排任务运行,但最小增量为1分钟

我希望filesystemwatcher一直运行。 脚本完成后,我希望它再次启动。

当事件(文件创建)发生时,您不必开始工作,您可以直接移动文件并使用action参数执行您想做的任何事情。

另外,您不必重新启动事件,除非您手动注销它,否则它将一直运行,因此您根本不必使用任务计划程序。

这是代码

# set the folder you want to watch 
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "$home/Desktop/Folder"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true  

# start job when event is detected
$action = {
    Start-Job -ScriptBlock {
        # Step 1&2 (You can move the file and rename it with one step)
        Move-Item $Event.SourceEventArgs.FullPath -Destination $newPath
    } | Wait-Job
}

# Register and start the FileSystemWatcher 
Register-ObjectEvent -InputObject $watcher -EventName Created -SourceIdentifier FileCreated -Action $action

注意我在代码中使用了Start-Job 但是,您可以忽略它,并将代码准确地放在$action

此代码将注册新的FileSystemWatcher,并将继续监视文件夹中是否有新创建的文件,然后将其移动到新位置。

停止观察者

Unregister-Event -SourceIdentifier FileCreated

在此处查找有关使用PowerShell跟踪文件夹更改的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM