将CSV中的测试字符串与

时间:2019-01-14 09:50:32

标签: powershell

我有一个CSV文件,其中包含用户名的姓氏格式。

我正尝试将这些别名一一提取,并将其与我们的域结合起来,以创建其电子邮件地址。

这是我的代码:

$CSV = Import-CSV "\\this\is\thepath\to\the\csv.csv" 
$domain = "@domain.co.uk"
$CSV.Alias | ForEach-Object (
    Write-Host ($CSV.Alias + $domain)
)

我需要的输出是:

John.Doe@domain.co.uk Jane.Doe@domain.co.uk John.Smith@domain.co.uk  

但是,这就是输出内容:

John.Doe Jane.Doe John.Smith  @domain.co.uk

1 个答案:

答案 0 :(得分:0)

尝试一下:

$CSV = Import-CSV '\\this\is\thepath\to\the\csv.csv' 
$domain = '@domain.co.uk'
$CSV.Alias | ForEach-Object {
    Write-Host $_ + $domain
}

如果我将其应用于此输入文件:

Alias
John.Doe
Jane.Doe
John.Smith

我得到这个输出。

John.Doe@domain.co.uk
Jane.Doe@domain.co.uk
John.Smith@domain.co.uk

我所做的就是纠正您尝试中的两个错误,即问题注释中指出的两个错误。另外,我进行了两次外观更改。

一项外观上的更改是在几个使用双引号的地方使用单引号。如果您不需要双引号引起的转换,请不要使用它们。请改用单引号。这只是防御性编码。

另一个美观的更改是删除了Write-Host参数周围的括号。它没有那些括号就可以工作。有人可能会说括号应该放在其中,以使其更易于阅读。好。