Powershell如何在某些字符串后添加新行

时间:2017-03-29 10:53:12

标签: powershell newline

我对脚本非常陌生。我试图解决一个问题,我正在看windows批处理和PowerShell。我找到了这个,但我不知道,为什么它不起作用:

我的input.txt文件包含以下内容:

<a> TEXT </a>
<c> text asdrtlj </c>
<a> another text </a>

我想在每个<a>之前添加新行,所以我尝试了这个:

powershell -Command "(gc input.txt) -replace '<a>', '`r`n<a>' | Out-File output.txt"

添加换行符不起作用。你能帮帮我吗?

PS:我在搜索解决方案时发现了很多复杂的代码,我还没有理解它们,所以如果你向我推荐一些好的教程,从这些语言开始我会很感激。

2 个答案:

答案 0 :(得分:5)

这里有几个问题。通过PowerShell的-command开关执行命令导致一些保留的字符问题,因为&lt; &GT;字符。

相反,打开PowerShell.exe窗口(开始 - &gt;运行 - &gt; powershell)并直接执行命令。

你还需要使用双引号而不是单引号来使特殊代码(如`r和`n)起作用。也应该足够了:

(gc input.txt) -replace '<a>', "`n<a>" | Out-File output.txt

答案 1 :(得分:1)

我们需要更多的引号。

powershell.exe -command "(gc 1_105.jpg) -replace '<a>', """"`r`n<a>""""|Out-File output.txt"

或者如何进行小型重构?

powershell.exe -Command "gc input.txt|%{$_.replace('<a>',[environment]::newline+'<a>')}|Out-File output.txt"