我正在寻找一些帮助,基本上我试图用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
答案 0 :(得分:0)
您可以将替换内容直接换入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
。以太或者您将需要一个不断运行的脚本来轮询该文件夹以进行更改。