2017-03-05 45 views
4

我想要做的是从文本文件中创建一个word文档。但文本文件中有pageBreaks。我想删除或替换文本文件中的那些pageBreaks。这是为了让我在word文档中添加pageBreaks,随后我会在实际需要的地方创建该文档。使用powershell如何替换文本文件中的pageBreak?

下面是我尝试自己替换文本文件中的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是♀ 在UltraEdit更换性格是很容易。我想用Powershell替换或删除它。

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

How to remove unknown line break (special character) in text file?

+0

我想要做的是从文本文件中创建一个word文档。但文本文件中有pageBreaks。我想删除或替换文本文件中的那些pageBreaks。这是为了让我在word文档中添加pageBreaks,我将随后创建 – RayBacker

+0

@RyanBemrose我尝试使用-Raw。以下是错误。 Get-Content:找不到与参数名称'Raw'匹配的参数。 – RayBacker

+0

我猜Windows 7?我认为'-Raw'参数是在8.0或8.1中添加的。无论如何,如果发布的答案不适合你,我们可能需要确切知道角色是什么。尝试在十六进制编辑器中打开文件以查看页面字符序列的结尾。 –

回答

2

分页符,你可以使用:

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

以下片段会将PowerShell的V3工作:

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

@RayBacker我修改了代码 –

+0

@RayBacker如果这解决了问题,那么将答案标记为已接受,将有助于获得相同问题的人 –

+0

@ Abhijit-pk代码工作并接受答案。谢谢 – RayBacker

2

感谢您的问题!这一个很有趣。

因此,Form-Feed特殊字符是PowerShell中的一个bug。如果你将它反映出来,你只会得到一个奇怪的字符,或者如果你不能显示它,就会得到一个正方形。但是,如果您将其复制并粘贴回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

这会直接删除换页符的所有实例。

希望这会有所帮助!干杯!

+0

尝试使用$ oldWord =“[\ f']页面”$ newWord =“页面”。但这不起作用。我不习惯REGEX。 – RayBacker

+0

对不起,我在我发送的代码中犯了一个小错字。如果你的字符串看起来像“'fhere是一些带有怪异符号'f的单词并保存到变量'$ oldVariable'中,那么你可以通过执行'$ oldVariable -replace'来获得”固定“版本[\ f] “,”“将查找所有'f的实例并用空字符串替换它。结果将是“这里有一些带有奇怪符号的单词” –

相关问题