我对脚本非常陌生。我试图解决一个问题,我正在看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:我在搜索解决方案时发现了很多复杂的代码,我还没有理解它们,所以如果你向我推荐一些好的教程,从这些语言开始我会很感激。答案 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"