我需要在文件中找到特定的行并在行尾添加一些数据,如下所示:
function AddSomeData($file, $key, $value)
{
$content = Get-Content $file
if ($content -match "I work very")
{
$content- add at the end $value
Set-Content $file
}
}
AddSomeData "settings.conf" "I work very" " hard"
结果 - 更改了行的文件:我非常努力。怎么做?
答案 0 :(得分:1)
您可以使用正则表达式在每行上搜索和替换,然后输出到新文件。例如:
get-content "settings.conf" | foreach-object {
$_ -replace 'I work very$','$0 hard'
} | out-file "settings2.conf"
答案 1 :(得分:1)
这就是我如何做到的:
Function AddSomeData(){
param(
[Parameter(Mandatory=$true)][String]$file,
[Parameter(Mandatory=$true)][String]$key,
[Parameter(Mandatory=$true)][String]$value
)
$content = get-content $file | ForEach-Object {
IF($_ -eq $key){"$key $value"}
ELSE {$_}
}
$content | Set-Content $file
}
然后只需调用函数:
AddSomeData settings.conf 'I work very' 'hard'