Powershell Для l oop в командный файл - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в Power-shell, мне нужна помощь в преобразовании Power Shell в командный файл.

код PowerShell.

 $dir = "C:\Users\myid\Documents\comparsion\src\main\resources\excelfiles\Compare_Result_Files"
 $files = Get-ChildItem "$dir\*.xlsx"
Foreach($file in $files)
{
Write-Host “Attaching File :- ” $file
$attachment = New-Object System.Net.Mail.Attachment –ArgumentList $file
$emailMessage.Attachments.Add($attachment)
}

Я использовал скрипт automati c для преобразования PowerShell в пакетный файл, но появляется ошибка при выполнении пакетного файла

сценарий пакетного файла

@echo off & powershell -command "&{$dir=\"C:\Users\myid\Documents\onemartcomparsion\src\main\resources\excelfiles\Compare_Result_Files\";$files=Get-ChildItem \"$dir\*.xlsx\";$path=\"C:\";$share=\"\\\\sd-49cd-8b6b\";$namepath=$dir -replace [regex]::Escape($path), $share;$emailSmtpServer=\"mailhu.com\";$emailMessage=New-Object System.Net.Mail.MailMessage;$emailMessage.From=\"donotreply@company.com\";$emailMessage.To.Add( \"myid@mailhu.com\" );$emailMessage.Subject=\"WR3 CitiRisk Regulatory REL-08/07 regulatoryMonthly Compare Data Production Release\";$emailMessage.IsBodyHtml=$true;$emailMessage.Body= \"^<b^>^<font color=black^> Compare data for CECL^</b^>^</font^> ^<br^>\";$emailMessage.Body+=($namepath)-join'^<br^>';$emailMessage.Body+=\"^<br^>^<br^>\";Foreach($file in $files){$attachment=New-Object System.Net.Mail.Attachment –ArgumentList $file;$emailMessage.Attachments.Add($attachment)}$SMTPClient=New-Object System.Net.Mail.SmtpClient($emailSmtpServer ,$emailSmtpServerPort );$SMTPClient.Send($emailMessage);} %*"pause

Сообщение об ошибке: это отправленное электронное письмо работает, файл просто файл не прикрепляется к электронному письму.

New-Object : A positional parameter cannot be found that accepts argument 'C:\Users\myid\Documents\comparsion
\src\main\resources\excelfiles\Compare_Result_Files\ResultFile__Prod_Afterrelease vs Prod_Beforerelease_(Feb 2020
BD11)27-Jul-2020__09_07_53AM.xlsx'.
At line:1 char:754
+ ... $attachment=New-Object System.Net.Mail.Attachment ûArgumentList $file ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-Object], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

Exception calling "Add" with "1" argument(s): "Value cannot be null.
Parameter name: item"
At line:1 char:812
+ ... ArgumentList $file;$emailMessage.Attachments.Add($attachment)}$SMTPCl ...
+                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentNullException
...