Quantcast
Channel: Windows PowerShell forum
Viewing all articles
Browse latest Browse all 21975

File in use question from script

$
0
0


  When I run my script there is a piece after the email ... I used a comment to show line
  that always gets a file in USE or in use by another process. I want to after each file I process move it
to an archive folder so I don't reprocess if it was successful. I would also like to rename the file before I move to archive to avoid duplicates(just in case)I have code commented out, but would like to get that installed along with
figuring out why I get the file in use error. I'm creating an email piece and have another script that does the faxing.

 Thanks.


 Script.
Function Write-Log($LogFile,$LogText){
If($LogFile -match '_fax'){
$LogEntry=@"
$($LogText)"@
}else{
$LogEntry=@"
$((Get-Date).ToString("dd-MM-yyyy HH:mm:ss")) > $($LogText)"@
}

$LogEntry
$LogEntry | Add-Content $LogFile     # I want this to be Shippernbr.txt
}

$writelogdir = 'c:\test'
$rootfolder='c:\test'

$files=Get-ChildItem "$rootfolder\*.csv"

$def = "ggg@dcm.com"

ForEach($file in $files){
    Write-Log "$writelogdir\files-processed.log" "Found files $file"
    Import-CSV $file -delimiter '|' | ForEach-Object{
        $attachment="$rootfolder\pdf\$($_.Shipper).pdf"
        $shipper = ($_.Shipper)
        $sub = 'Autosend for #' + ' ' + $shipper
    If($_.email) {        
         Write-Log "$writelogdir\$($_.Shipper)_email.log" "Attachment is $($attachment)"
         $email=$_.Email
        Write-Log "$writelogdir\$($_.Shipper)_email.log" "Email address is $($email)"
        $emailCC=$_.EmailCC
        Write-Log "$writelogdir\$($_.Shipper)_email.log" "Email CC address is $($emailCC)"
         $subject=$_.Shipper
        Write-Log "$writelogdir\$($_.Shipper)_email.log" "Autosend for # $($subject)"
        $from=$_.ReturnEmail
         Write-Log "$writelogdir\$($_.Shipper)_email.log" "From Address $($from)"        
    }
   Else
   {
        Write-Log "$writelogdir\files-processed.log" "No Email Address found in File--> $file"
   }        
        # Write a Fax Doc file if FaxNbr Not Blank
    If($_.FaxNbr) {    
        Write-Log "$writelogdir\$($_.Shipper)_fax.log" "<adddoc:$attachment>"
         $Faxnbr = $_.Faxnbr
        Write-Log "$writelogdir\$($_.Shipper)_fax.log" "<TOFAXNUM:$($_.FaxNbr)>"
         $Attn = $_.Attn
        Write-Log "$writelogdir\$($_.Shipper)_fax.log" "<TONAME:$($_.Attn)>"
        Write-Log "$writelogdir\$($_.Shipper)_fax.log" "<TOCOMPANY: PACK:$($file)>"
        Write-Log "$writelogdir\$($_.Shipper)_fax.log" "<FROMNAME: AUTO FAX>"
        }
Else
 {
        Write-Log "$writelogdir\files-processed.log" "FaxNbr Not found in File--> $file"
 }        
 # Check if Return Email has valid data
    If($_.ReturnEmail){
     $from=$_.ReturnEmail
     }
   Else
     {
    $from=$def
     Write-Log "$writelogdir\$($_.Shipper)_email.log" "From Address Blank Using Default $($from)"        
     }    
  # Send Email
    #Send-MailMessage -from $from -To $email -Cc $emailCC -Subject $sub -attachments $attachment -SmtpServer 'local' -ErrorAction Continue
        if($?){
            Write-Log "$writelogdir\$($_.Shipper)_email.log" "Email Sent Successfully"
            Move-Item $file -Destination "$rootfolder\archive\"   #File in USE Message
            Write-Log "$writelogdir\$($_.Shipper)_email.log" "Moved file $($file) to $rootfolder\archive\"
            }else{
            Write-Log "$writelogdir\$($_.Shipper)_email.log" "Email Send failed: $($error[0])";break
        }
    gci "$writelogdir\*.csv" | % { rename-item –ath $_.Fullname –ewname ( $_.basename + (get-date -format ' dd-MM-yyyy') + $_.extension) -WhatIf
    }
  }
}


Viewing all articles
Browse latest Browse all 21975

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>