【发布时间】:2021-12-31 18:23:33
【问题描述】:
我是 Powershell ISE 的新手,我不知道该怎么做。
我想获取字符串(uxxxx axxxx 名称电子邮件)并将其作为包含用户名、管理员和名称的表返回(希望最终自动化电子邮件)。 我的代码目前是这样的:
$users = Get-Content ".\FileName.txt"
$line = "Username, Admin, Name, Email"
$parts = $line.Split(" ")
$Test = Foreach ($user in $users) {
Select-Object Username, Admin, Name
}
$Test | Sort-Object -Property Name | Out-GridView
这只是代码的淡化版本,因为它将通过域和身份验证过程,但我希望有人可以帮助我让表格暂时正常工作。
【问题讨论】:
-
如果没有看到 FileName.txt 中的确切示例行,很难回答。
$line建议使用逗号分隔值 (CSV),所以也许您可以在数据上使用Import-Csv而不是Get-Content?您将$line拆分为空格,这会将逗号留在$parts中,这似乎无济于事-除非您不使用$parts,所以我猜没关系。您的select-object没有将需要的数据通过管道传输到其中,但是您不能在来自Get-Content的行上使用像这样的选择对象。您可以在 Import-Csv 的输出上使用 Select-Object,所以如果可以使用它,请执行。 -
确切的行是这样的: uabcd aabcd John Doe john.doe@xxx.xxx.xx 有几十行不同的数据。我假设必须正确分隔数据(逗号),但我目前正在处理这个问题。
-
嗯,按空格分割会将“John Doe”变成两列。然后取决于您是否可以保证每行名称中都有空格。如果任何行在该列中有一个或三个名称,这些行将分成不同的列数,这意味着数据被读入了错误的列。
标签: arrays powershell foreach powershell-ise