Powershell V2找到并替换

时间:2013-01-14 19:00:48

标签: powershell replace

我正在尝试以编程方式在文件中更改日期。我需要修复的行看起来像这样:

    set @@dateto = '03/15/12'

我需要编写一个PowerShell V2脚本来替换单引号内的内容,我不知道如何做到这一点。

我最接近的人看起来像这样:

    gc $file | ? {$_ -match "set @@dateto ="} | % {$temp=$_.split("'");$temp[17] 
     =$CorrectedDate;$temp -join ","} | -outfile newfile.txt

问题:它给出了关于索引17超出范围的错误。此外,outfile只包含一行(未修改的行)。我很感激任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

你可以做这样的事情(虽然你可能想处理角落案件):

$CorrectedDate = '10/09/09'
gc $file | %{ 
    if($_ -match "^set @@dateto = '(\d\d/\d\d/\d\d)'") { 
        $_ -replace $matches[1], $CorrectedDate; 
    }  
    else {
        $_
    } 
} | out-file test2.txt
mv test2.txt $file -force