Я пытаюсь заставить PowerShell пройти через CSV и удалить все, что находится в массиве «$ skip», а затем сохранить файл. Если я заменю переменную $skip фактическим словом в строке IF, это сработает, однако, когда я использую переменную, ничего не будет удалено.
$file = "c:\temp\employee.csv"
$skip = "ax1","ax2","testdummy1"
Get-ADUser -Filter * -SearchBase $ou -Properties EmployeeID, Department,mailNickname |
Select-Object Name,mailNickname,UserPrincipalName,DistinguishedName,EmployeeID,Department `
| Export-Csv -Path $file
$list = foreach($line in Get-Content $file)
{
IF($line -like $skip)
{}
Else
{$line}
}
$list| Set-Content $fileout -Force
Решение проблемы
Я думаю, вы могли бы использовать -matchдля этого.
$file = "c:\temp\employee.csv"
$skip = "ax1","ax2","testdummy1"
Get-ADUser -Filter * -SearchBase $ou -Properties EmployeeID, Department,mailNickname |
Select-Object Name,mailNickname,UserPrincipalName,DistinguishedName,EmployeeID,Department `
| Export-Csv -Path $file
$list = foreach($line in Get-Content $file)
{
IF(($skip -match $line).Count -gt 0)
{}
Else
{$line}
}
$list| Set-Content $fileout -Force
Ссылка: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comparison_operators?view=powershell-7.2#-match-and--notmatch
Комментариев нет:
Отправить комментарий