我需要从 CSV 文件中删除几列而不在 Powershell 中导入 CSV 文件。下面是我的输入 CSV 的示例以及我希望输出 CSV 的样子。
输入.csv
A,1,2,3,4,5
乙、6、7、8、9、10
C、11、12、13、14、15
D、15、16、17、18、19、20
理想输出.csv
A,3,5
乙、8、10
C,13,15
D,17,20
我曾尝试使用以下代码执行此操作,但它给了我很多错误,并说我不能以这种方式使用“删除”方法(我过去曾这样做过)......有任何想法吗?
$Workbook1 = $Excel.Workbooks.open($file.FullName)
$header = $Workbook1.ActiveSheet.Range("A1:A68").EntireRow
$unneededcolumns1 = $Workbook1.ActiveSheet.Range("A1:O1").EntireColumn
$unneededcolumns2 = $Workbook1.ActiveSheet.Range("B1:K1").EntireColumn
$unneededcolumns3 = $Workbook1.ActiveSheet.Range("F1:I1").EntireColumn
$unneededcolumns4 = $Workbook1.ActiveSheet.Range("G1:I1").EntireColumn
$unneededcolumns5 = $Workbook1.ActiveSheet.Range("H1:O1").EntireColumn
$unneededcolumns6 = $Workbook1.ActiveSheet.Range("J1:AL1").EntireColumn
$unneededcolumns7 = $Workbook1.ActiveSheet.Range("K1").EntireColumn
$unneededcolumns8 = $Workbook1.ActiveSheet.Range("L1:AK1").EntireColumn
$unneededcolumns9 = $Workbook1.ActiveSheet.Range("F1:I1").EntireColumn
$unneededcolumns10 = $Workbook1.ActiveSheet.Range("M1:AB1").EntireColumn
$unneededcolumns11 = $Workbook1.ActiveSheet.Range("N1:X1").EntireColumn
$unneededcolumns12 = $Workbook1.ActiveSheet.Range("O1:BA1").EntireColumn
$unneededcolumns13 = $Workbook1.ActiveSheet.Range("P1:U1").EntireColumn
$header.Delete()
$unneededcolumns1.Delete()
$unneededcolumns2.Delete()
$unneededcolumns3.Delete()
$unneededcolumns4.Delete()
$unneededcolumns5.Delete()
$unneededcolumns6.Delete()
$unneededcolumns7.Delete()
$unneededcolumns8.Delete()
$unneededcolumns9.Delete()
$unneededcolumns10.Delete()
$unneededcolumns11.Delete()
$unneededcolumns12.Delete() …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 Powershell 发送电子邮件。我可以使用下面的代码毫无问题地向一位收件人发送电子邮件。但是,当我向$EmailTo变量添加第二个收件人时,我没有收到电子邮件。我也没有收到任何错误。我做了一些研究,似乎 SMTP 客户端发送电子邮件的方式不需要多个收件人。
$EmailFrom = "sender@email.com"
$EmailTo = "recipient1@email.com"
$EmailBody = "Test Body"
$EmailSubject = "Test Subject"
$Username = "carlos@email.com"
$Password = "12345"
$Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
$SMTPClient = New-Object Net.Mail.SmtpClient("smtp.com", 123) #Port can be changed
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$SMTPClient.Send($Message)
Run Code Online (Sandbox Code Playgroud)
我尝试使用该Send-MailMessage命令,但它给我带来了问题。
Send-MailMessage -from $EmailFrom -to $EmailTo -Subject $EmailSubject `
-smtpserver smtp.com -usessl `
-credential (new-object System.NetworkCredential("$Username","$Password"))
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
找不到类型 [System.NetworkCredential]...
关于通过身份验证向多个收件人发送电子邮件的最佳方式是什么?