使用powershell自动从文本文件中删除特定字符并保存到新位置

使用powershell自动从文本文件中删除特定字符并保存到新位置,powershell,Powershell,我正在寻找一些帮助,基本上我正在尝试使用powershell执行3个操作(如果所有操作都可能的话) 在保存到特定文件夹的文件上自动运行以下操作 从该文件中删除字符 将文件保存到新位置 我首先将代码放在一起以删除字符,它可以工作(因为powershell ISE显示删除字符的文本,但在输出文件时为空) 创建新文件后,如果它可以移动到另一个文件夹并删除以前的文件,那就太好了 这是我到目前为止所拥有的 Get-Content C:\Users\Tech\Desktop\Test\import.tx

我正在寻找一些帮助,基本上我正在尝试使用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

通过将替换的内容直接导入
Out文件
Cmdlet,您无需使用
Foreach
语句即可一次性替换所有行

$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后需要删除原始文件,请执行以下操作

$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 

至于文件保存到文件夹时的自动运行,我会研究每X分钟运行一次运行脚本的
计划任务
。否则,您将需要一个不断运行的脚本来轮询文件夹的更改。

@CraigCarter如果它回答了您的问题,您能接受答案吗。