gpt4 book ai didi

powershell - 可以记录已扫描文件并在下次运行时忽略它们的Powershell脚本吗?

转载 作者:行者123 更新时间:2023-12-03 01:29:47 25 4
gpt4 key购买 nike

我正在尝试编写一个脚本,该脚本将递归扫描目录,扩展名为.Error的本地文件,然后向一群人发送包含文件列表的电子邮件。我计划通过Control-M运行此脚本,并使其每20分钟运行一次。我希望该脚本记录自上次运行以来已被扫描的文件,并且不将其包括在电子邮件中。我是个 super 新手,所以我不确定该怎么做。下面是代码的灭菌版本,我必须扫描文件并发送电子邮件。我会非常感谢任何人的帮助。

function sendEmail {
$SMTPServer = "relay.EXAMPLE.com"
$SMTPFrom = "Test@EXAMPLE.com"
$EmailAddress = "user@EXAMPLE.com"
send-mailmessage -to $EmailAddress -from $SMTPFrom -Subject "Error loading XPOLL File - $file" -body "This is the body" -smtpserver $SMTPServer
}

##Search for .Error files
$array = @((Get-ChildItem -Path \\SERVER\FOLDER -Recurse -Include *.Error).Fullname)
foreach ($file in $array) {
sendEmail
}
##

最佳答案

尝试将任务分解为简单的步骤:

  • 从文件
  • 中读取排除项列表
  • 发现文件
  • 根据排除列表
  • 过滤文件
    发送电子邮件
  • 将排除列表添加到文件

  • $exclusionFilePath = '.\path\to\exclusions\file.txt'
    if(-not(Test-Path $exclusionFilePath)){
    # Create the exclusion file if it doesn't already exist
    New-Item $exclusionFilePath -ItemType File
    }

    # read list of exclusions from file
    $exclusions = Get-Content -Path $exclusionFilePath

    # discover files
    $array = @((Get-ChildItem -Path \\SERVER\FOLDER -Recurse -Include *.Error).Fullname)

    # filter current files against list of exclusions
    $array = $array |Where-Object {$exclusions -notcontains $_}

    foreach($file in $array){
    # send emails
    sendEmail

    # append new file path to exclusions file
    $file |Add-Content -Path $exclusionFilePath
    }

    温馨提示:参数化您的功能

    依赖于调用上下文中的变量是一种反模式,我强烈建议将 sendEmail函数重构为以下形式:
    function Send-ErrorFileEmail {
    param(
    [string]$File
    )
    $MailMessageArgs = @{
    SMTPServer = "relay.EXAMPLE.com"
    From = "Test@EXAMPLE.com"
    To = "user@EXAMPLE.com"
    Subject = "Error loading XPOLL File - $file"
    Body = "This is the body"
    }
    Send-MailMessage @MailMessageArgs
    }

    然后在脚本中使用它,例如:
    Send-ErrorFileEmail -File $file

    关于powershell - 可以记录已扫描文件并在下次运行时忽略它们的Powershell脚本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59380819/

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