powershell - 使用Powershell自动删除文本文件中的特定字符并将其保存到新位置

标签 powershell

我正在为此寻求帮助,基本上我正在尝试使用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/

    相关文章:

    powershell - 如何在 PowerShell 中将哈希字符串转换为字节数组?

    powershell - IIS配置可以同时修改吗

    arrays - 在PowerShell中,数组索引从第一个到倒数第二个

    powershell - 如何使用PowerShell打开包含AutoOpen宏的文档?

    powershell - 为什么 'true' 等于 $true

    powershell - 是否可以根据变量的值来改变它的一部分?

    bash - 如何使用 PowerShell 在 WSL 中启动 Jupyter Notebook?

    Powershell: boolean 函数的命名约定

    powershell - 在Windows Server 2012实例上通过cmd完成时,通过PowerShell使用 'net use'表现出不同的行为

    Azure AD 应用程序注册 secret 操纵