【问题标题】:PowerShell replace text between two strings with date and timePowerShell用日期和时间替换两个字符串之间的文本
【发布时间】:2021-01-27 08:22:45
【问题描述】:

我一直试图弄清楚如何在 PowerShell 中执行以下操作,但运气不佳。

我想用当前日期和时间替换 messageid> AND 之间的所有内容。

我已经开始编写下面粘贴的一些代码,有人可以指导我正确的道路吗 - 非常感谢。

Get-Content -path C:\test.txt -raw -replace pattern = "(?s)messageid>(.*?)</messageid"'<message>*</messageid>' (Get-Date).ToString('dddd dd-MM-yyyy HH:mm:ss') | Set-Content -path c:\test.txt

【问题讨论】:

  • 实际原文是什么?
  • 嗨,Doug,大意是这样的:9348399343-38493-Det-100

标签: string powershell replace


【解决方案1】:

这个例子应该可以帮助你达到你想要的结果。

$text = @'
Some line of text
random text <messageid> who knows </messageid> some other text
another line
'@

$text -replace '(?s)(?<=messageid>).+?(?=</messageid)',(Get-Date).ToString('dddd dd-MM-yyyy HH:mm:ss')

Some line of text
random text <messageid>Monday 12-10-2020 21:54:04</messageid> some other text
another line

编辑

并应用于您评论中的示例

'<MessageID>9348399343-38493-Det-100</MessageID>' -replace '(?s)(?<=messageid>).+?(?=</messageid)',(Get-Date).ToString('dddd dd-MM-yyyy HH:mm:ss')

<MessageID>Monday 12-10-2020 21:58:56</MessageID>

【讨论】:

    猜你喜欢
    • 2019-12-25
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2021-01-28
    相关资源
    最近更新 更多