【发布时间】:2018-08-21 13:15:37
【问题描述】:
我正在编写一个脚本,它检查每个子文件夹中是否有一个 txt 文件。这工作正常,但如果其中没有 txt 文件,如何获得子文件夹的名称?
例如:在“C:\Files\”中,我有一些子文件夹 A、B、C 和 D。在这些子文件夹中,只有一个 txt 文件,它是从另一个软件生成和放置的。这些文件每天都会被新的 txt 文件替换。
有时缺少一个或多个文件,因此子文件夹为空。如果文件夹不包含 txt 文件,如何获取文件夹名称?
我的代码:
检查昨天的文件是否存在
$yesterday = Get-ChildItem C:\Files\*.txt -Recurse | Where-Object {
$_.LastWriteTime.ToShortDateString() -eq (Get-Date).AddDays(-1).ToShortDateString()
}
当文件丢失时:
if (!$yesterday) {
Send-MailMessage
-To $mailReceiver
-Cc $mailReceiverCc
-From "$mailSenderName $mailSender"
-Subject "Backup error"
-Body "Backup from yesterday is missing!"
-SmtpServer $mailSmtpServer
}
【问题讨论】:
-
那么如何检查是否有 .txt 文件?以你已经完成的工作为基础可能是最好的?
-
我添加了我的代码@Paxz
-
请注意,如果您想像这样包装
Send-MailMessage语句,您需要使用反引号来转义换行符(即在每个包裹行的末尾放置反引号)。
标签: powershell