gpt4 book ai didi

regex - Powershell Get-Content -> Foreach-Object -> -replace -> Out-File 在每个文件的开头添加一个字符 (0x00)

转载 作者:行者123 更新时间:2023-12-01 10:01:06 25 4
gpt4 key购买 nike

我有一个在文件中执行正则表达式替换的函数。问题是它会在它接触的每个文件的开头添加一个字符 (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"
}

如何替换我想要的行而不更改文件的任何其他部分?

最佳答案

听起来像是在文件开头写了一个 BOM。您可以使用 -Encoding ASCII 将编码设置为 ASCII(没有 BOM)。 out-file 上的参数.

关于regex - Powershell Get-Content -> Foreach-Object -> -replace -> Out-File 在每个文件的开头添加一个字符 (0x00),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16024633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com