我正在尝试以编程方式在文件中更改日期。我需要修复的行看起来像这样:
set @@dateto = '03/15/12'
我需要编写一个PowerShell V2脚本来替换单引号内的内容,我不知道如何做到这一点。
我最接近的人看起来像这样:
gc $file | ? {$_ -match "set @@dateto ="} | % {$temp=$_.split("'");$temp[17]
=$CorrectedDate;$temp -join ","} | -outfile newfile.txt
问题:它给出了关于索引17超出范围的错误。此外,outfile只包含一行(未修改的行)。我很感激任何帮助。谢谢!
答案 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