【问题标题】:True or False output to columnTrue 或 False 输出到列
【发布时间】:2016-11-25 04:37:04
【问题描述】:

我使用这个脚本来导入csv文件并修改它然后导出它 我想读取“成员”列中的数据,如果找到字符串“[Admin...whatever string...]”,则“Admin Priviledges”列中的输出应该为 TRUE,否则为 FALSE。

我尝试使用如下布尔值:

Import-Csv csvdatacol.csv |
  Select-Object Name, Hostname, 'Last Logon Date', 'Member of',
                @{n='Admin Priviledges';e={[bool]()}}

【问题讨论】:

  • [bool]($_.'Member of' -like Admin*)
  • 谢谢,我用 '' e={[boolean]($_.'Member of' -like 'Administrators*' )}} 对其进行了修改,但我的所有条目都为 False,我需要 [ Admin* 作为字符串
  • 您可能还需要处理“管理员”不是列表中第一个组的情况。如果您只是将代码添加到 previous question 而不是删除它,您的问题会更清楚。
  • 对 Ansgar,我认为我必须重新构建问题,这就是我删除它的原因,如您所见,我是新用户,我不知道怎么回事...如果admin 出现在 [ 之后,我不关心字符串的其余部分。 [ 括号是正则表达式,我需要它作为文本,但 * 也是正则表达式,我需要它作为正则表达式

标签: csv powershell


【解决方案1】:

在“管理员权限”字段的表达式中使用类似的内容:

@($_.'Member Of' -replace '^\[|\]$' -split ',') -contains 'Administrators'

【讨论】:

  • 它有效!谢谢!我不明白我们在哪里声明真假?
  • 操作array -contains value返回一个布尔值$true$false,当转换为字符串时分别变为TrueFalse
猜你喜欢
  • 2014-06-28
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 2018-07-26
  • 2012-10-20
  • 1970-01-01
  • 2016-04-08
  • 1970-01-01
相关资源
最近更新 更多