我有一个公式,我想在"唯一帐户名称"柱。我知道CSV文件只是数据,我想知道最佳方法是将公式添加到唯一帐户名称选项卡并自动填充列的其余部分(如果可能)。不确定这是否可能,我想要一些澄清。
我正在尝试在唯一帐户名称下实现此功能。 IF(G2 =" Domain",E2&" - "& C2,A2&" - "& C2)
我的代码:
Import-Csv 'U:\Local Group Members.csv' | where-Object {($_.Name0 -eq "administrators") -and ($_.caption0 -match "Microsoft Windows 10 Enterprise|Microsoft Windows 7 Enterprise|Microsoft Windows 7 Professional|Microsoft Windows 8 Enterprise|Microsoft Windows 8 Pro|Microsoft Windows 8.1 Enterprise|Microsoft Windows 8.1 Pro")} |
Select-Object "Netbios_name0", "Name0", "Account0","category0","Domain0","Unique Account Name","caption0", "Excluded" |
Export-Csv -notypeinformation U:\LGMbestone.csv
我的问题是,是否可以将公式添加到此文件中?或者我是否必须将其导出为不同的文件类型并制作新脚本?
我是PowerShell的新手。
答案 0 :(得分:4)
假设您的CSV文件已经有一个空白的“唯一帐户名称”'列并复制您在评论中共享的Excel公式,这样的内容可能是您正在寻找的内容:
Import-CSV U:\Local Group Members.csv | ForEach-Object {
If ($_.Caption0 -eq 'Domain') {
$_.UniqueAccountName = "$($_.Domain0) - $($_.Account0)"
} Else {
$_.UniqueAccountName = "$($_.Nebios_name0) - $($_.Account0)"
}
Write-Output $_
} | Export-Csv -notypeinformation U:\LGMbestone.csv
如果你的输入CSV文件还没有开始使用该列,你可以这样做(在对象中创建它):
Import-CSV U:\Local Group Members.csv | ForEach-Object {
If ($_.Caption0 -eq 'Domain') {
$UniqueAccountName = "$($_.Domain0) - $($_.Account0)"
} Else {
$UniqueAccountName = "$($_.Nebios_name0) - $($_.Account0)"
}
$_ | Add-Member -MemberType NoteProperty -Name 'UniqueAccountName' -Value $UniqueAccountName -PassThru
} | Export-Csv -notypeinformation U:\LGMbestone.csv
如果没有来自两个CSV文件的一些示例数据,并且更清楚地解释您希望最终结果看起来像什么,那么很难说这些是否完全符合您的要求。