使用 powershell 如何替换文本文件中的 pageBreak?

Using powershell how to replace pageBreak in a text file?

我想做的是从文本文件创建一个 word 文档。但是文本文件中有 pageBreaks。我想删除或替换文本文件中的那些分页符。这是为了允许我在 word 文档中添加 pageBreaks,我随后会在我实际需要的地方创建它。

下面是我自己尝试替换文本文件中的pageBreak的PowerShell代码。这是行不通的。因为使用“`f”代替 pageBreak 不起作用。

$oldWord = "`fPage"
$newWord = "Page"

#-- replace the page breaks in the file
(Get-Content $inputFilePath) -replace '$oldWord', '$newWord' | Set-Content $inputFilePath

文本编辑器UltraEdit中的pageBreak显示的符号是♀ 在 UltraEdit 中替换字符很容易。我想使用 Powershell 替换或删除它。

下面是一个相关问题。但是关于 PowerShell 代码仍然没有答案。

对于分页符,您可以使用:

[io.file]::ReadAllText( 'H:\oldFile.txt') | %{$_.replace("`f","")} >h:\newFile.txt

以下代码片段适用于 powershell v3:

cat H:\oldFile.txt -raw | %{$_.replace("`f","")} >h:\newFile.txt

感谢提问!这个很有趣。

所以 Form-Feed 特殊字符是 powershell 中的错误。如果你回显它,你只会得到一个奇怪的字符,或者如果你不能显示它,就会得到一个正方形。但是如果你将它复制并粘贴回 powershell 终端,如果只是将你的命令入口点移动到屏幕顶部。奇数

我所做的是尝试寻找替换通用特殊字符的方法。您可以使用 $oldWord -replace 'REGEX_GOES_HERE', 'THING_TO_REPLACE_WITH_HERE 在 powershell 中使用正则表达式,所以我想到的是:

$oldWord -replace '[\f]', '' #You can also use \r for carriage return, \n for new line, \t for tab, \s for ALL whitespace

这将简单地删除换页字符的所有实例。

希望对您有所帮助!干杯!