比方說,我有$file
,$key
用於匹配,$string
用於添加。 如果$file
中有某行包含$key
,則將$string
添加到行尾。 例如: $key="b"
,$string="z"
$file
包含:如果行中包含字符串,則將內容添加到同一行
a
b
c
新$file
包含:
a
b z
c
我怎麼能做到這一點,在PowerShell中最簡單的方法是什麼? 注意! $file
是一個實際的文件,而不是一些數組中的程序
比方說,我有$file
,$key
用於匹配,$string
用於添加。 如果$file
中有某行包含$key
,則將$string
添加到行尾。 例如: $key="b"
,$string="z"
$file
包含:如果行中包含字符串,則將內容添加到同一行
a
b
c
新$file
包含:
a
b z
c
我怎麼能做到這一點,在PowerShell中最簡單的方法是什麼? 注意! $file
是一個實際的文件,而不是一些數組中的程序
你可能不得不遍歷每一行,並檢查線路是否包含密鑰:
$newContent = Get-Content $file | Foreach {
if ($_ -like "*$key*")
{
"$_ $string"
}
else
{
$_
}
}
$newContent | Set-Content $file
$file="C:\temp\report.csv"
$Newfile="C:\temp\report2.csv"
$KeyToSearch="b"
$StringToAdd="z"
Get-Content $file |
%{if ($_ -like "*$KeyToSearch*") {"$_ $StringToAdd" } else {$_}} |
out-file -FilePath $Newfile -Append
THX ,使用「out-file ...」的區別是什麼?你說過,「設定內容......」並寫在答案之前? – igor
沒有什麼不同,你可以使用2個解決方案;) – Esperento57
好了,如果有什麼'$文件'包含以下內容: '一個 BCDE F' ,我想加「Z」來結束包含'$關鍵=「b」' – igor
我編輯我的問題,該行的不妨一試 –