У меня возникла следующая проблема. У меня есть сценарий powershell для отправки мне писем с прикрепленными файлами журналов. Единственная проблема в том, что мне нужны только файлы журналов, которые не пусты. Так я пытался использовать этот скрипт:Powershell отправить письмо
If ((Get-content "Log.txt") -gt 0) {
$smtp.Send($msg)
echo "email sent"
} else {
echo "File is blank"
}
Кажется, что -gt 0
не работает для меня. Независимо от того, что я пробовал, powershell по-прежнему отправляет мне пустые журналы. Не могли бы вы показать мне, где я ошибаюсь? Я попытался это так:
If ((Get-Content $file) -eq $Null) {
"File is blank"
} else {
$smtp.Send($msg)
echo "email sent"
}
Но она до сих пор не работает.
Заранее спасибо.
Я не знаю много о PowerShell, я в принципе избежать Windows, в целом. Но я бы предположил, что вы можете проверить фактический размер файла вместо использования 'Get-content'. Затем используйте файлizeize, чтобы определить, следует ли отправлять файл. – user1596138
Привет, Иосия, спасибо за комментарий. Я попытался с фактическим размером файла, но результат был тот же. Пустое имя файла отправляется. Если ((Get-ChildItem "Log.txt") |. Еогеасп -процесс ($ _ длина/1Мб -gt ("0,00"))) {$ smtp.Send ($ тзд) \t эхо «отправленное " \t} еще { \t эхо„файл пуст“ \t} дело в том, что если я создать пустой файл его размер 0KB, но файл журнала на сервере 1KB даже он пуст. – user1097593
Прежде всего, я знаю, что вы новичок, просто подумал, что я дам вам знать, чтобы обернуть ваш код в backticks, чтобы отформатировать его в блоках. Во-вторых, то, что я сделал бы, это увидеть, насколько велик файл, если вы просто вложили в него один символ. Если он изменится на 2 КБ, просто рассмотрите что-нибудь <= 1KB как пустое. – user1596138