首先:對不起,我的壞英語。get-content -multiple替換
問題:
- 我有姓名,電子郵件,住址的30個用戶
- 我有一個HMTL(或RTF或TXT)與名稱的佔位符等的.csv文件(NameOfUser )和電子郵件地址(EmailUser)(文檔中的某處並且有時是多個)。
- 我想讀的CSV文件爲每個用戶名/電子郵件i want to: 一)與CSV文件 B的$ User.Username項替換詞
NameOfUser
)與$ USER替換詞EmailUser
。 CSV文件的電子郵件進入 c)通過寫新內容的新文件到\ UNC \用戶名\新的HTML file.htm
我的問題: 如果我只改變一件事,姓名或電子郵件地址,輸出工作。 如果我把第二個替換放入foreach-object部分,輸出會導致錯誤。 我必須改變5個不同的Entrys,並希望我可以修復它在一個get-content | ..... 步。
腳本的部分A:
$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
問題: 每條線出現2(或更多等於-replace條目)時報在$ NewHTMFile :(
由於提前 丹尼爾
@ C.B.的答案似乎是正確的。 您的問題來自'-replace'不會替代'$ _',而是通過修改返回一個新字符串。這就是爲什麼你的腳本每行寫入輸出幾次。每個-replace返回一個新的字符串,然後將其發送到'set-content'。 – Poorkenny 2013-03-08 15:00:36