gpt4 book ai didi

powershell - 如果我关闭正在运行的PS窗口,则FileSystemWatcher停止工作

转载 作者:行者123 更新时间:2023-12-02 23:08:50 30 4
gpt4 key购买 nike

我想连续监视文件夹中的任何新文件...如果有任何新文件,我的脚本应选择该文件并开始处理它。

谷歌搜索后,我发现了此解决方案,对我来说效果很好。

 $folder = 'G:\localexcelfiles\Logistics\logistics automation'
$filter = '*.*' # <-- Takes only files that has xlsx extension


$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{
IncludeSubdirectories = $false
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {

$path = $Event.SourceEventArgs.FullPath
$Filename = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
}

为了运行此脚本,我正在打开Windows Powershell ISE并运行以下命令
  ./scriptname

这将启动我的脚本并为我的文件夹创建一个监视程序。.如果我尝试再次运行该脚本,它将引发错误,提示“用户已存在”

但是问题是...如果我关闭运行脚本的Powershell ISE ...我的脚本也停止了,并且观察者也被删除了

如何确保此FileSytemWatcher应该运行24X7?

如果我使用任务计划程序运行脚本,该怎么办?

最佳答案

使用以下建议的设置从任务计划程序调用PowerShell脚本。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoExit -noprofile
-executionpolicy bypass -file C:\YourPowerShellScript.ps1

注意:我将此命令添加到批处理文件中,然后从计划任务中调用该批处理文件,这是不必要的额外步骤,但是我发现从计划任务中以这种方式运行它更干净,更容易。
-NoExit停止关闭窗口,以便它继续在后台运行FileSystemWatcher。
-NoProfile无需加载用户配置文件也可以运行此脚本,这意味着它效率更高,因为它不会加载配置文件中设置的所有用户脚本。
-Executionpolicy bypass确保将允许运行脚本。

关于powershell - 如果我关闭正在运行的PS窗口,则FileSystemWatcher停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366193/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com