1

起初:对不起我的英语不好。

问题:

  1. 我有一个 .csv 文件,其中包含 30 个用户的名称、电子邮件地址等
  2. 我有一个 hmtl(或 rtf 或 txt),其中包含名称 (NameOfUser) 和电子邮件地址 (EmailUser) 的占位符(文档中的某个位置,有时是多个)。
  3. 我想为我想要的每个用户名/电子邮件阅读 csv 文件:a)用NameOfUsercsv 文件的 $User.Username 条目替换 Word b)用 csv 文件的EmailUser$User.Email 条目替换 Word 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 条目):(

在此先感谢丹尼尔

4

2 回答 2

1

尝试

...
Get-Content \\the-fileserver\File.htm | foreach-object { 
            $_ -replace 'Username', $User.Name -replace 'email-adresse', $User.Email }
...
于 2013-03-08T14:19:43.023 回答
1

未经测试,但我认为这应该有效,并避免在磁盘驱动器中进行一些咀嚼:

$userfile = import-csv \\the-fileserver\User.csv
$HTML = Get-Content '\\the-fileserver\File.htm'

foreach ($User in $Userfile)
  {
    $HTML -replace 'Username', $User.Name -replace 'email-adresse', $User.Email |
     set-content -path $NewHTMFile
  }
于 2013-03-08T14:41:16.373 回答