Powershell - 在.xaml文件中的特定字符串后插入文本

时间:2015-02-16 20:43:36

标签: powershell insert find append

我已经编写了许多批处理文件,但我认为批处理不能完成当前任务,我希望Powershell可以帮助我!我的任务中更困难的方面是在文件中定位一个特定的字符串,并在字符串之后插入一些文本,也在同一行上,并且不会干扰之后在同一行上再次出现的字符串。我找到了这个代码,但它对我的任务有两个陷阱......

$FileName = "C:\users\yef03111\desktop\main.xaml"
$Pattern = "yiapcspvgcp:GraphicFileProperties.ScalingMode="
$FileOriginal = Get-Content $FileName

[String[]] $FileModified = @() 

Foreach ($Line in $FileOriginal)
{    
    $FileModified += $Line

    if ($Line -match "$Pattern") 
        {            
        $FileModified += "success!"       
    } 
}
Set-Content $FileName $FileModified

首先,它将文本放在模式后面的下一行,而我需要在同一行上。我期待的模式还包含""已经意味着我只是暂时缩短了测试时间。所以模式实际上是......

#Not this
$Pattern = "yiapcspvgcp:GraphicFileProperties.ScalingMode="
#But this
$Pattern = "yiapcspvgcp:GraphicFileProperties.ScalingMode="FixedRatio""

请帮助第一个计时器!!

1 个答案:

答案 0 :(得分:0)

尚未测试过但是怎么样?

$FileName = "C:\users\yef03111\desktop\main.xaml"
$Pattern = 'yiapcspvgcp:GraphicFileProperties.ScalingMode="FixedRatio"'
$FileOriginal = Get-Content $FileName

[String[]] $FileModified = @() 

Foreach ($Line in $FileOriginal)
{    
    if ($Line -match "$Pattern") 
    {            
       $FileModified = $Line + "success!"       
    }
    else
    {
       $FileModified += $Line
    }
}
Set-Content $FileName $FileModified