首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用where-object编写Powershell脚本

使用where-object编写Powershell脚本
EN

Stack Overflow用户
提问于 2011-02-09 23:45:54
回答 2查看 32.6K关注 0票数 5

我正在尝试为Exchange命令行管理程序编写powershell脚本,将联系人列表从csv文件导入通讯组。

我从下面开始

代码语言:javascript
复制
Import-csv C:\filename.csv | forEach-Object {New-MailContact .......}

这很好用,除了我的csv文件中的一些条目有一个空的电子邮件地址,并且创建新的联系人是因为ExternalEmailAddress是空的。所以,我试着:

代码语言:javascript
复制
Import-csv C:\filename.csv | ForEach-Object { Where-Object {$_.ExternalEmailAddress -ne "" } | New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress....}

但这似乎并不管用--它没有过滤掉电子邮件地址为空的条目。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-10 00:01:24

我认为您可能希望在使用ForEach-Object之前使用Where-Object,因为它将过滤沿管道传递的对象。

根据New-MailContact cmdlet支持的内容,您可以通过管道将结果直接传递给它,也可以逐个传递它们。

一次完成(不使用ForEach-Object):

代码语言:javascript
复制
Import-csv C:\filename.csv | Where-Object {$_.ExternalEmailAddress -ne "" } | New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress }

一个接一个(通过使用ForEach-Object):

代码语言:javascript
复制
Import-csv C:\filename.csv | Where-Object {$_.ExternalEmailAddress -ne "" } | ForEach-Object { New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress }
票数 9
EN

Stack Overflow用户

发布于 2011-02-10 00:01:02

可能实际上那里有一个空格或其他空格字符,它们实际上并不是空的。可能是这样的:

代码语言:javascript
复制
 Import-csv C:\filename.csv | Where-Object {$_.ExternalEmailAddress -match "^\S+$" } | New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress....}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4947101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档