1

我正在尝试以编程方式更改文件中的日期。我需要修复的行如下所示:

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

我需要编写一个 powershell V2 脚本来替换单引号内的内容,但我不知道该怎么做。

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

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

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

4

1 回答 1

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
于 2013-01-14T19:17:55.940 回答