想要使用Powershell从文本文件中删除文本

时间:2018-08-17 15:12:42

标签: powershell replace command-line

我正在尝试编辑包含各种html元素的大型纯文本文档:

  • <p> & </p>
  • <script> & </script>
  • <style> & </style>
  • <div> & </div>
  • 在更极端的情况下; <span style="color: #ff0000;"> & </span>

我的目标是从文本文件中删除任何<UniqueText>。我与powershell的合作不多,因此我的知识有限,而且还是给了我一个机会。

用于替换所有<UniqueText>

get-content "C:\Users\John\Desktop\input.txt" | -replace "\<.*?\>","" | Out-File C:\Users\John\Desktop\output.txt

上面的脚本给出了以下错误:

  

-replace:术语“ -replace”未被识别为cmdlet,函数,脚本文件或可运行程序的名称。

1 个答案:

答案 0 :(得分:1)

使用-replace时,必须确保将字符串正确解析为调用。 有两种方法可以解决问题:

1。。使用foreach浏览文件的每一行,并在每一行上使用-replace(如果您想对这些行进行其他操作,这可能会有所帮助):< / p>

get-content "C:\Users\John\Desktop\input.txt" | % {$_ -replace "\<.*?\>",""} | Out-File C:\Users\John\Desktop\output.txt

%foreach

的别名

$_foreach的元素,因此文件的每一行

2。。在文件中使用替换,而无需遍历每一行:

(get-content "C:\Users\John\Desktop\input.txt") -replace "\<.*?\>","" |  Out-File C:\Users\John\Desktop\output.txt