1

ファイルでプログラムによって日付を変更しようとしています。修正する必要がある行は次のようになります。

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

一重引用符内の内容を置き換える PowerShell V2 スクリプトを作成する必要がありますが、その方法がわかりません。

最も近いものは次のようになります。

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

これに関する問題: インデックス 17 が範囲外であるというエラーが発生します。また、出力ファイルには 1 行 (変更されていない行) しか含まれていません。これについて何か助けていただければ幸いです。ありがとう!

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 に答える