Posted On March 31, 2019

PowerShell Script to Read/Parse XML Files in a Directory

kimconnect 0 comments
blog.KimConnect.com >> Codes >> PowerShell Script to Read/Parse XML Files in a Directory
# This script is to be set on the FTP server or 

$folder = '\\FTPSERVER05\SFTP\EDI\INCOMING';
$files = Get-ChildItem $folder *.xml -recurse;
# $files = Get-ChildItem -path $folder | where {$_.Lastwritetime -lt (date).addminutes(-0)}
if ($files){
$timeStamp = Get-Date -Format g
foreach ($file in $files){
$MyXml = Get-Content $folder\$file;
$pos+=$MyXml.PurchaseOrders.PurchaseOrder.OrderHeader.PONumber;
}
# Copy files to FD
copy \\FTPSERVER05\SFTP\EDI\INCOMING\*.xml \\FILESERVER01\EDI\INTERFACES\ORDERS.FTP.IN
# Move file(s) into a backup folder
robocopy \\FTPSERVER05\SFTP\EDI\INCOMING \\FTPSERVER05\SFTP\EDI\BACKUP\INCOMING /E /R:10 /NP /IS /IT /MOV
# Send an email to the appropriate team
$EmailFrom = "[email protected]"
$EmailTo = "[email protected]"
$Subject = "Incoming EDI Order(s) Received"
$Body = "Some new Purchase Order(s) has been received with this timestamp: $timeStamp.`n`nHere is the list of associated PO Number(s):`n`n$pos"
$SMTPServer = "kimconnect.mail.protection.outlook.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 465)
$SMTPClient.EnableSsl = $false
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("[email protected]", "password");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
}

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

PowerShell: Split Array into Multiple Sub-Arrays and Inflate Strings to Certain Lengths to Create Visual Columns

What does a nerd do on his free time? Give himself little puzzles to solve.…

Renew or Replace a SSL Certificate in Dynamics CRM

Error Message: "Exchange Online Security Certificate Expiration Please update your certificate or Exchange Online integration…

How To Prevent Windows From Automatically Rebooting After Updates

# Add New Registry Key $regHive='REGISTRY::HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' $keyname='NoAutoRebootWithLoggedOnUsers' $value=1 Set-ItemProperty -Path $regHive -Name $keyname -value $value…