4

ファイルで正規表現の置換を実行する関数があります。問題は、タッチするすべてのファイルの先頭に文字 (0x00) を追加することです (一致するファイルが見つからない場合でも!)。csprojファイルを編集しているため、MSBuild で次のエラーが表示されます。

error MSB4025: The project file could not be loaded. '.', hexadecimal value 0x00, is an invalid character. Line 2, position 1.

これが私の機能です:

function fileStringRegExReplace ([string] $fileToChange, [string] $oldString, [string] $newString) {
    echo "f" | xcopy "$fileToChange" "$fileToChange.og.cs" /Y /Q

    $file = Get-Content "$fileToChange.og.cs" | 
        Foreach-Object {
            $_ -replace $oldString, $newString
        } |
        Out-File "$fileToChange"

    Remove-Item "$fileToChange.og.cs"
}

ファイルの他の部分を変更せずに、必要な行を置き換えるにはどうすればよいですか?

4

4 に答える 4

0

out-file を set-content に置き換えてみてください。

于 2013-04-15T21:05:09.810 に答える