我正在为此寻求帮助,基本上我正在尝试使用Powershell执行3个操作(如果可能的话)
我首先将代码组合在一起以删除字符,然后它开始工作(就象Powershell ISE在显示文本时删除了字符一样,但是在输出文件时它为空。
一旦创建了新文件,最好将其移动到另一个文件夹并删除先前的文件。
到目前为止,这就是我所拥有的。
Get-Content C:\Users\Tech\Desktop\Test\import.txt
foreach ($line in (Get-Content C:\Users\Tech\Desktop\Test\import.txt))
{ $line -replace "\&", "" -replace "\£", "" -replace "\+", "" -replace "\-", "" -replace "\)","" -replace "\(","" -replace "\$","" -replace "\#","" -replace "\*","" -replace "\%",""}
Out-File -Encoding UTF8 import.new.txt
最佳答案
您可以通过将替换后的内容直接管道传递到Foreach
Cmdlet中,而无需使用Out-File
语句即可一键替换所有行。
$content = Get-Content "C:\Users\Tech\Desktop\Test\import.txt"
$newfile = "C:\YourNewLocation\import.new.txt"
$content -replace "\&", "" -replace "\£", "" -replace "\+", "" -replace "\-", ""`
-replace "\)","" -replace "\(","" -replace "\$","" -replace "\#","" `
-replace "\*","" -replace "\%","" | Out-File -FilePath $newfile -Encoding UTF8
上面的代码在新位置创建带有替换字符串的新文件,并保留原始文件。如果要删除的原始文件是什么,请使用
Remove-Item
Cmdlet。至于将文件保存到文件夹时自动运行,我会考虑让每运行X分钟运行一次
Scheduled Task
来运行脚本。否则,您将需要一个不断运行的脚本来轮询文件夹中的更改。
关于powershell - 使用Powershell自动删除文本文件中的特定字符并将其保存到新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36769872/