首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PowerShell文件外操作

PowerShell文件外操作
EN

Stack Overflow用户
提问于 2013-09-03 17:02:30
回答 2查看 1.1K关注 0票数 1

我希望有人能帮忙。我正在尝试操作powershell创建的文件。我设法得到了我想要的最终结果,但是我相信如果它只是一个命令的话,会更容易一些。

代码语言:javascript
运行
复制
# Invoke the Exchange Snapping ( make sure you are Exchange Admin to do it SO)
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010

#Create a file with list of DL in the organization
Get-DistributionGroup | Select-Object Name | Out-File C:\Pre_DLGroups.txt
$content = Get-Content C:\Pre_DLGroups.txt

#Remove the 3 first lines of the file that you dont need it
$content | Select-Object -Skip 3 | Out-file C:\DLGroups.txt

#Trim the space in the end and crate the Final file
Get-Content C:\DLGroups.txt | Foreach {$_.TrimEnd()} | Set-Content c:\FinalDLGroup.txt

这样才能使最终结果变成一个文件,而不是创建3吗?干杯

埃尔顿

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-04 08:42:02

代码语言:javascript
运行
复制
Get-DistributionGroup | 
Select-Object -ExpandProperty Name -Skip 3 |
Set-Content c:\FinalDLGroup.txt
票数 0
EN

Stack Overflow用户

发布于 2013-09-03 17:13:46

您可以通过管道发送内容,而无需将其写入文件。可以使用括号对某些cmdlet和/或函数集的输出进行分组,然后将输出传递到预期的cmdlet。

所有这些都可以应用在一行上,但出于格式化的原因,我在这里用多行编写了它。添加Out-String是一种安全措施,以确保您打算修剪的任何输出实际上都可以被裁剪。

由于我们不再从文本文件中获取这些内容,powershell可能会返回一个不理解TrimEnd()的对象,因此我们需要为此做好准备。

代码语言:javascript
运行
复制
(Get-DistributionGroup | Select-Object Name) | 
Out-String | 
Select-Object -Skip 3 |
Foreach {$_.TrimEnd()} | 
Set-Content c:\FinalDLGroup.txt

然而,一个甚至更小的解决方案将只需提取每个名称并直接操作它。我在这里使用%作为Foreach-Object的别名。本例使用Get-ChildItem,在当前目录中有一些名为test的文件:

代码语言:javascript
运行
复制
(Get-ChildItem test*) | 
% { $_.Name.TrimEnd() } | 
Set-Content c:\output.txt
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18597725

复制
相关文章

相似问题

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