New-LogFile.ps1
<#
.SYNOPSIS This function tests for and creates the log file / log file path for the script. .DESCRIPTION This function tests for and creates the log file / log file path for the script. .PARAMETER logFolderPath The path of the log file. .PARAMETER groupSMTPAddress The SMTP address of the group being migrated - this will be parsed for the log file name. .OUTPUTS Ensure the directory exists. Establishes the logfile path/name for subsequent function calls. .EXAMPLE new-logfile -groupSMTPAddress ADDRESS -logFolderPath LOGFOLDERPATH #> Function new-LogFile { [cmdletbinding()] Param ( [Parameter(Mandatory = $true)] [string]$groupSMTPAddress, [Parameter(Mandatory = $true)] [string]$logFolderPath ) #Define the string separator and then separate the string. $groupsSMTPAddress = $groupSMTPAddress.trim() [string]$separator="@" [array]$fileNameSplit = $groupSMTPAddress.Split($separator) #First entry in split array is the prefix of the group - use that for log file name. #The SMTP address may contain letters that are not permitted in a file name - for example ?. #Using regex and a pattern to replace invalid file name characters with a - [string]$fileName=$fileNameSplit[0]+".log" $pattern = $pattern = '[' + ([System.IO.Path]::GetInvalidFileNameChars() -join '').Replace('\','\\') + ']+' $fileName=[regex]::Replace($fileName, $pattern,"-") # Get our log file path $logFolderPath = $logFolderPath+$global:staticFolderName #Since $logFile is defined in the calling function - this sets the log file name for the entire script $global:LogFile = Join-path $logFolderPath $fileName #Test the path to see if this exists if not create. [boolean]$pathExists = Test-Path -Path $logFolderPath if ($pathExists -eq $false) { try { #Path did not exist - Creating New-Item -Path $logFolderPath -Type Directory } catch { throw $_ } } out-logfile -string "================================================================================" out-logfile -string "START LOG FILE" out-logfile -string "================================================================================" } |