gpt4 book ai didi

powershell - 从文件中删除孤立的回车

转载 作者:行者123 更新时间:2023-12-04 18:26:53 24 4
gpt4 key购买 nike

我有一个日常流程,将管道分隔的文件下载并解析到数据库中。有时,这些文件在一行中的一个字段的末尾包含一个回车符(没有换行符),这会打断我的过程。我的调度程序(不是我们公司内部的 Windows 调度程序)允许我在将这些文件加载​​到数据库之前对这些文件运行批处理或 PowerShell 进程,因此我想在字段末尾删除任何孤立的回车符实例(\r|).

此 PowerShell 命令在手动运行时有效:

(Get-Content CarriageReturnTest.txt -Raw).Replace("`r|","|") |设置内容 CarriageReturnTest.txt -Force

但是,当我将其放入调度程序时,出现“'”,“' 未被识别为内部或外部命令的错误。我意识到调度程序必须运行 PowerShell "{command}" 的 Windows 命令,因此双引号使命令行认为我正在运行多个不同的命令。我尝试用单引号替换 PowerShell 命令中的双引号,如下所示:

(Get-Content CarriageReturnTest.txt -Raw).Replace('`r|','|') |设置内容 CarriageReturnTest.txt -Force

这通过调度程序运行,但实际上并没有从文件中删除任何内容,因为 PowerShell 将 ` 解释为用单引号引起来的转义字符。

我尝试使用 ""、`"、\"和 ^" 转义双引号,但似乎没有任何效果。

我意识到我可以编写一些更长的批处理脚本来处理这个问题,但理想情况下,这将是一个适合调度程序的单行脚本。我还研究过将脚本保存为 ps1 文件并使用文件路径作为参数运行它,但我也没有让它工作。

最佳答案

根据@JosefZ 所说的,我尝试了这个并且成功了:

(Get-Content CarriageReturnTest.txt -Raw) -replace('\r\|','|') |设置内容 CarriageReturnTest.txt -Force

-replace 让我在单引号 '\r' 中使用正则表达式,而不是在双引号中使用 "`r",这让我从逃跑

关于powershell - 从文件中删除孤立的回车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59690334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com