需要附加此powershell脚本,不确定要执行什么操作

需要附加此powershell脚本,不确定要执行什么操作,powershell,Powershell,我需要一些帮助来扩展这个脚本。基本上,我需要添加$inputFileName='Report.txt'不在默认目录下的情况。每天早上脚本运行时,作业会发出一封电子邮件,说没有要处理的文件,然后作业停止。我所看到的是,每当源目录中没有文件时,作业就会附加一个无用的空白.xls文件运行。我感谢任何事先的帮助 $ErrorActionPreference="SilentlyContinue" Stop-Transcript | out-null $ErrorActionPrefer

我需要一些帮助来扩展这个脚本。基本上,我需要添加$inputFileName='Report.txt'不在默认目录下的情况。每天早上脚本运行时,作业会发出一封电子邮件,说没有要处理的文件,然后作业停止。我所看到的是,每当源目录中没有文件时,作业就会附加一个无用的空白.xls文件运行。我感谢任何事先的帮助

$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
Start-Transcript -path C:\PATH\Logoutput.txt -append


$emailFilePath = 'C:\PATH\PATH\'
$inputFilePath = 'C:\PATH\PATH\Upload'
$inputFileName = 'Report.txt'
$inputFile = Join-Path $inputFilePath $inputFileName
$outputFileName = 'Report.csv'
$outputFilePath = 'C:\PATH\PATH\Send' 
$OutputFile = Join-Path $outputFilePath $outputFileName 

$folder = 'C:\PATH\PATH\Upload'
$filter = 'Report.txt'                            
$destination = $outputFilePath

$dateTime1 = Get-Date -Format s

Write-Host "The file was received: $dateTime1"
Import-CSV $inputFile -Delimiter "`t" -Header "Value 1" , "Value 2" , "Value 3" , "Value 4" , "Value 5" | Tee-Object -Variable Report.txt | Export-CSV $OutputFile  -Delimiter "," -NoTypeInformation

$xl = new-object -comobject excel.application
$xl.visible = $false
$Workbook = $xl.workbooks.open("$OutputFile")
$Worksheets = $Workbooks.worksheets
$Workbook.SaveAs("$outputFilePath\Report.xls",1)
$Workbook.Saved = $True
$xl.Quit()

$objExcel = new-object -comobject excel.application  
$objExcel.Visible = $false
$objWorkbook = $objExcel.Workbooks.open("$outputFilePath\Report.xls")  
$objWorksheet = $objWorkbook.Worksheets.Item(1)  
$objRange = $objWorksheet.UsedRange 
[void] $objRange.EntireColumn.Autofit() 
$objWorkbook.SaveAs("$outputFilePath\Report.xlsx",51)
$objWorkbook.Saved = $True
$objExcel.Quit()



$fromaddress = "user@domain.com" 
$toaddress = "user@domain.com" 
$bccaddress = "" 
$CCaddress = "user@domain.com"  
$Subject = "Here Is The Report" 
$body = get-content $emailFilePath\content.htm 
$attachment = "$outputFilePath\Report.xlsx"
$smtpserver = "smtpdomain" 
 

$message = new-object System.Net.Mail.MailMessage 
$message.From = $fromaddress 
$message.To.Add($toaddress) 
$message.CC.Add($CCaddress) 
#$message.Bcc.Add($bccaddress) 
$message.IsBodyHtml = $True 
$message.Subject = $Subject 
$attach = new-object Net.Mail.Attachment($attachment) 
$message.Attachments.Add($attach) 
$message.body = $body 
$smtp = new-object Net.Mail.SmtpClient($smtpserver) 
$smtp.Send($message) 
 
$dateTime2 = Get-Date -Format s
Write-Host "The file was parsed and emailed at $dateTime2"
Start-Sleep -Seconds 60
$message.Dispose()
Start-Sleep -Seconds 60
kill -processname Excel
Start-Sleep -Seconds 60
Remove-Item "C:\PATH\PATH\Send\*.*"
$filenameFormat = "Report" + "" + (Get-Date -Format "yyyy-MM-dd") + ".txt"
$updatedFile = "C:\PATH\PATH\Upload\" + $filenameFormat
Rename-Item -Path "C:\PATH\PATH\Upload\Report.txt" -NewName $filenameFormat
Move-Item -Path $updatedFile -Destination C:\PATH\PATH\ArchivedReportData

Stop-Transcript
exit

在进行以下处理之前,需要对文件进行测试:

If ( -not (Test-Path -Path "inputFile")) {

  #Write your file not found logic/messages here
  
  Exit 

}

Import-CSV $inputFile -Delimiter "`t" -Header "Value 1" , "Value 2" , "Value 3" , "Value 4" , "Value 5" | Tee-Object -Variable Report.txt | Export-CSV $OutputFile  -Delimiter "," -NoTypeInformation

$dateTime1 = Get-Date -Format s
Write-Host "The file was received: $dateTime1"
...

HTH

测试路径应该可以为您提供帮助