This is the script basically written to fetch the data from a single csv file for backup and issue that we are facing is the script gets executed but we are not able to find the file under C:\temp. Can you please help us in fixing this issue.
Function Set-abcBackup {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
[String]$Filepath,
[Parameter(Mandatory=$false)]
[String]$Folder
)
Begin {
$Folder = "$Filepath\Backup_Files"
If(!(Test-Path $Folder)) {
mkdir $Folder -Force | Out-Null
}
$latestfile = Get-ChildItem "$Filepath\*.csv" | ? {$_.LastWriteTime -ge (Get-Date).Date}
$filefullname = ($latestfile).FullName
}
Process {
Get-Content $filefullname | select -Skip 22 > "$Folder\RemovedColumns.csv"
$Getdata = Import-Csv "$Folder\RemovedColumns.csv"
$Getdata | Export-Csv "$Folder\RemovedColumnsModified.csv" -NoTypeInformation
$Newdata = Import-Csv "$Folder\RemovedColumnsModified.csv"
$count = 0
Foreach($data in $newdata) {
If($data.Client -notlike "Client") {$count1 = $count++}
Else {$count1 = $count
break
}
}
$count2 = $count1+1
$count2 -as [int] | Out-Null
Get-Content "$Folder\RemovedColumnsModified.csv" | select -Skip $count2 > "$Folder\Backup1.csv"
$AllFiles = Import-Csv "$Folder\Backup1.csv"
Foreach($file in $AllFiles) {
$Client = $file.Client
$Agent = $file.Agent
$Status = $file.Status
$BackupSet = $file.'Backup Set'
$StartTime = $file.'Start Time'
$Type = $file.Type
$EndTime = $file.'End Time or Current Phase'
$ScanType = $file.'Scan Type'
If(($Client -notlike "*Protect*") -and ($Client -notlike "*Notes:*") -and ($Client -notlike "*Job*") -and ($Client -notlike "*#*") -and ($Client -notlike "*Sysbase*") -and ($Client -notlike "*Client*") -and ($Client -notlike "*SP_abc*") -and ($Client -notlike "*All*") -and ($Client -notlike "*4*") -and ($Client -notlike $null)){
$Client1 = $Client }
If(($Status -like "*Comple*") -or ($Status -like "*Fail*")){$Status1 = $Status}
If(($StartTime -notlike $null) -and ($StartTime -notlike "*N/A*") -and ($StartTime -notlike "*Current*") -and ($StartTime -notlike "*Out of*") -and ($StartTime -notlike "*Not*") -and ($StartTime -notlike "*VM Gue*")){$StartTime1 = $StartTime}
If(($EndTime -notlike $null) -and ($EndTime -notlike "*Operating*") -and ($EndTime -notlike "*Linux*") -and ($EndTime -notlike "*CentOS*") -and ($EndTime -notlike "*Microsoft*") -and ($EndTime -notlike "*N/A*")){$EndTime1 = $EndTime}
If(($Agent -notlike $null) -and ($Agent -notlike "*Virtual Ser*") -and ($Agent -notlike "*Active Dir*") -and ($Agent -notlike "*Apps*") -and ($Agent -notlike "*File System*") -and ($Agent -notlike "*Machine*") -and ($Agent -notlike "*SQL ser*") -and ($Agent -notlike "*Oracle*")) {$Agent1 = $Agent}
If(($BackupSet -like "*Comple*") -or ($BackupSet -like "*Fail*")){$BackupSet1 = $BackupSet}
If(($Type -notlike $null) -and ($Type -notlike "*INCR*") -and ($Type -notlike "*SYN*") -and ($Type -notlike "*Log*") -and ($Type -notlike "*FULL*") -and ($Type -notlike "*Start Ti*")){$Type1 = $Type}
If(($ScanType -notlike $null) -and ($ScanType -notlike "*Classic*") -and ($ScanType -notlike "*Scan*") -and ($ScanType -notlike "*N/A*") -and ($ScanType -notlike "*N/A*") -and ($ScanType -notlike "*End Ti*")){$ScanType1 = $ScanType}
$PSObject = New-Object PSObject
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "Name" -Value $Client1
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "BackupStatus" -Value $Status1
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "StartTime" -Value $StartTime1
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "EndTime" -Value $EndTime1
$PSObject | Export-Csv "$Folder\FirstPart.csv" -NoTypeInformation -Force -Append
$PSObject1 = New-Object PSObject
Add-Member -InputObject $PSObject1 -MemberType NoteProperty -Name "Name" -Value $Agent1 -Force
Add-Member -InputObject $PSObject1 -MemberType NoteProperty -Name "BackupStatus" -Value $BackupSet1 -Force
Add-Member -InputObject $PSObject1 -MemberType NoteProperty -Name "StartTime" -Value $Type1 -Force
Add-Member -InputObject $PSObject1 -MemberType NoteProperty -Name "EndTime" -Value $ScanType1 -Force
$PSObject1 | Export-Csv "$Folder\SecondPart.csv" -NoTypeInformation -Force -Append
}
$csv1 = Import-Csv "$Folder\FirstPart.csv"
$csv2 = Import-Csv "$Folder\SecondPart.csv"
$merge = $csv1 + $csv2
$merge | select -Property * -Unique | Export-Csv "$Folder\xyz_Backup_Final.csv" -NoTypeInformation -Force
$File = Import-Csv "$Folder\xyz_Backup_Final.csv"
$File | % {
$Name = $_.Name
$Operation = "Backup"
$Client = "xyz"
$BStatus = $_.BackupStatus
$End = $_.EndTime
$Start = $_.StartTime
$End_Time = [DateTime]::Parse($end)
$Start_Time = [DateTime]::Parse($start)
$_.starttime = ($Start_Time).tostring("dd/MM/yyyy hh:mm:ss")
$_.endtime= ($End_Time).tostring("dd/MM/yyyy hh:mm:ss")
$ST = $_.StartTime
$ET = $_.EndTime
$Total_Duration=$End_Time-$Start_Time
$duration = $Total_Duration.tostring("hh':'mm':'ss")
$PSObject = New-Object PSObject
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "Name" -Value $Name
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "Operation" -Value $Operation
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "BackupStatus" -Value $BStatus
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "Client" -Value $Client
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "StartTime" -Value $ST
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "EndTime" -Value $ET
Add-Member -InputObject $PSObject -MemberType NoteProperty -Name "Duration" -Value $duration
$PSObject | Export-Csv "$Folder\xyz_Backup.csv" -Force -NoTypeInformation -Append
}
}
End {
Move-Item -Path "$Folder\xyz_Backup.csv" -Destination "C:\Temp\xyz_Backup.csv" -Force
Del $Folder -Recurse -Force
#Get-ChildItem $Filepath -Filter "*.csv" | Remove-Item -Force
}
}
Set-abcBackup -Filepath "C:\Path\To\CSV" -ErrorAction SilentlyContinue