Это мой код до сих пор:
# Master
Import-Csv -Path "C:\PS\SessionData\MasterList.csv" | Select-Object "Service Unit",@{ Name='UserID';Expression = { $PSItem.'UserID'.ToLower()} } | Export-Csv C:\PS\SessionData\MasterList2Col.csv -NoTypeInformation
# Get list of total numbers per Service Unit
Import-Csv -Path "C:\PS\SessionData\MasterList2Col.csv" | Select-Object -ExpandProperty "Service Unit" | Group-Object | Select-Object Name,Count | Out-File "C:\PS\SessionData\countUsersByBU.txt"
#Citrix
Import-Csv -Path "C:\PS\SessionData\Session Summary 09_04_2020.csv" | Select-Object -Property @{ Name="UserID";Expression={ $PSItem."Associated User" } } -Unique | Export-Csv -Path "C:\PS\SessionData\sessionCRX.csv" -NoTypeInformation
$citrixUsers = Import-Csv -Path "C:\PS\SessionData\sessionCRX.csv" | Select-Object -ExpandProperty UserID
Import-Csv -Path "C:\PS\SessionData\MasterList2Col.csv" | Where-Object {$citrixUsers -contains $PSItem.UserID} | ForEach-Object {"$($PsItem.'Service Unit')" } | Out-File "C:\PS\SessionData\totalCRX.txt"
$fileCRX = "C:\PS\SessionData\totalCRX.txt"
Get-Content $fileCRX | Group-Object | Select-Object Name,Count | Out-File C:\PS\SessionData\countCRX.txt
#VPN
Import-Csv -Path "C:\PS\SessionData\Cisco Anyconnect users 09-04.csv" | Where-Object { $PSItem.Status -eq 'Active' } | Select-Object @{Name = 'UserID'; Expression = {($_.Name -split '\\',2)[-1] }} -Unique | Export-Csv -Path "C:\PS\SessionData\sessionVPN.csv" -NoTypeInformation
$vpnUsers = Import-Csv -Path "C:\PS\SessionData\sessionVPN.csv" | Select-Object -ExpandProperty UserID
Import-Csv -Path "C:\PS\SessionData\MasterList2Col.csv" | Where-Object {$vpnUsers -contains $PSItem.UserID} | ForEach-Object {"$($PsItem.'Service Unit')" } | Out-File "C:\PS\SessionData\totalVPN.txt"
$fileVPN = "C:\PS\SessionData\totalVPN.txt"
Get-Content $fileVPN | Group-Object | Select-Object Name,Count | Out-File C:\PS\SessionData\countVPN.txt
#Create new csv file with totals
$txtMain = "C:\PS\SessionData\countUsersByBU.txt"
$txtCRX = "C:\PS\SessionData\countCRX.txt"
$txtVPN = "C:\PS\SessionData\countVPN.txt"
#End result new.csv
#Get-Content ??? | Export-Csv -Path "C:\PS\SessionData\new.csv"
У меня есть три текстовых файла, в которых есть столбец «Имя» и столбец «Количество», пример ниже:
$txtMain = "C:\PS\SessionData\countUsersByBU.txt"
Name Count
---- -----
HR 20
Account 25
Dev 25
Sales 25
Garden 10
$txtCRX = "C:\PS\SessionData\countCRX.txt"
Name Count
---- -----
HR 3
Account 6
Dev 9
Garden 7
$txtVPN = "C:\PS\SessionData\countVPN.txt"
Name Count
---- -----
HR 7
Account 8
Dev 1
Sales 5
Мне нужно получить эти данные в новый файл .csv. Где данные txtMain имеют все столбцы Name и столбец общего количества. Данные из txtOne должны проверить файл new.csv для столбца Name и поместить значение Count в третий столбец. Данные из txtTwo должны проверить файл new.csv для столбца Name и поместить значение Count в четвертый столбец. например, new.csv
Name (txtMain) (txtCRX) (txtVPN) (Percentage)
---- --------- -------- -------- ------------
HR 20 3 7 50%
Account 25 7 8 60%
Dev 25 9 1 40%
Sales 25 5 20%
Garden 10 7 70%
Затем последний столбец, который является вычисляемым выражением, которое вычисляет процентное содержание столбцов txtCRX и txtVPN из столбца txtMain. Извиняюсь за вопрос noob, некоторое время не работал с Powershell и не уверен, как написать окончательный оператор Get и Export для создания файла new.csv.