【发布时间】:2013-02-24 02:43:14
【问题描述】:
起初:对不起我的英语不好。
问题:
- 我有一个 .csv 文件,其中包含 30 个用户的名称、电子邮件地址等
- 我有一个 hmtl(或 rtf 或 txt),其中包含名称 (NameOfUser) 和电子邮件地址 (EmailUser) 的占位符(文档中的某个位置,有时是多个)。
- 我想读取每个用户名/电子邮件的 csv 文件,我想:
a) 将 Word
NameOfUser替换为 csv 文件的 $User.Username 条目 b) 将 WordEmailUser替换为 csv 文件的 $User.Email 条目 c) 将包含新内容的新文件写入 \UNC\Username\New-html-file.htm
我的问题: 如果我只更改一件事,名称或电子邮件地址,则输出有效。 如果我将第二个 -replace 放入 foreach-object 部分,则输出会导致错误。 我必须更改 5 个不同的条目,并希望我可以在一个获取内容中修复它 | .....一步。
脚本的一部分:
$userfile = import-csv \\the-fileserver\User.csv
foreach ($User in $Userfile) {
Get-Content \\the-fileserver\File.htm | foreach-object {
$_ -replace 'Username', $User.Name
$_ -replace 'email-adresse', $User.Email
} | set-content -path $NewHTMFile
问题: 每行在 $NewHTMFile 中出现 2 次(或更多等于 -replace 条目)次 :(
提前致谢 丹尼尔
【问题讨论】:
-
@C.B. 的回答似乎是正确的。您的问题来自
-replace不会在$_中替换,而是返回一个带有修改的新字符串。这就是您的脚本每行多次写入输出的原因。每个 -replace 返回一个新字符串,然后将其发送到set-content。
标签: regex powershell