gpt4 book ai didi

powershell - 将参数从一个Powershell函数传递给另一个

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

我是Powershell和开发 Realm 的新手。我正在尝试编写一个脚本,一旦文件超过特定大小,它将通过电子邮件发送给联系人。我有两个单独的功能,分别工作(一个用于检查文件大小,一个用于生成文件供sendmail使用),但是我无法让它们进行交互。

我想执行功能CheckSize,如果变量$ ExceedsSize设置为1,则调用功能SendMail,否则脚本应以其他操作结束。

我搜索了各个论坛,但找不到任何适用于我正在做的事情。

   ##Check file to see if it is over a particular size and then send email once threshold is reached.

param(
[string]$SiteName = "TestSite", #Name of Site (No Spaces)
[string]$Path = "\\NetworkPath\Directory", #Path of directory to check
[int]$FileSizeThreshold = 10, #Size in MB that will trigger a notification email
[string]$Contacts = "MyEmail@email.com"
)

CLS

##Creates variable $ExceedsSize based on newest file in folder.
Function CheckSize {
IF ((GCI $Path -Filter *.txt | Sort LastWriteTime -Descending | Select-Object -first 1 | Measure-Object -property Length -sum).sum / 1000000 -gt $FileSizeThreshold) {$ExceedsSize = 1}
ELSE {$ExceedsSize = 0}

Write-Host $ExceedsSize
}


Function SendMail {
Param([string]$Template, [string]$Contacts, [string]$WarnTime)

$EmailLocation = "\\NetworkPath\Scripts\File_$SiteName.txt"

#Will Generate email from params
New-Item $EmailLocation -type file -force -value "From: JMSIssue@emails.com`r
To: $Contacts`r
Subject: $SiteName file has exceeded the maximum file size threshold of $FileSizeThreshold MB`r`n"

#Send Email
#CMD /C "$SendMail\sendmail.exe -t < $EmailLocation"

}

最佳答案

Write-Host $ExceedsSize之前或之后添加此代码:

return $ExceedsSize

将此添加到底部:
$var = CheckSize

if ($var -eq 1){
SendMail
}

说明
您有两个功能,但实际上没有运行它们。底部的部分可以做到这一点。
您的CheckSize函数不会为其余函数返回 $ExceedsSize;默认情况下,它仍在功能范围内。 return x表示将变量传递回主脚本。 $var =表示已为其分配该变量。

关于powershell - 将参数从一个Powershell函数传递给另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43099013/

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