gpt4 book ai didi

powershell - Powershell:无需使用Regex从字符串(11/11/2020 11:23:45 Text2 12345)中提取日期时间

转载 作者:行者123 更新时间:2023-12-02 23:49:22 25 4
gpt4 key购买 nike

我有一个文本文件
11/11/2020 11:23:45 Text2 12345
文字2020-11-25 11:23:46 12345
我正在遍历文本文件,然后
通过将日期格式指定为“MM / dd / yyyy HH:mm:ss”,我需要第1行的输出为11/11/2020 11:23:45
并将日期格式指定为“yyyy-dd-MM HH:mm:ss”,将第2行设置为2020-11-25 11:23:46

$pattern = "MM/dd/yyyy HH:mm:ss"
$dateString = 11/11/2020 11:23:45 Text2 12345
$date = [datetime]::ParseExact($dateString,$date_format,$null)
我不能使用正则表达式,因为文本文件中的日期格式可能很少,并且parseExact无法正常工作,因为字符串具有与Date组合的其他值。
任何帮助,请!

最佳答案

我建议对switch-File参数使用 -Regex 语句:

# Sample input file.
$file = './sample.txt'

# Add sample data to the file.
@'
11/11/2020 11:23:45 Text2 12345
Text 2020-11-25 11:23:46 12345
'@ > $file

# Read the file line by line, and perform regex matching on each.
# Convert each match to a [datetime] instance by casting and output it.
switch -Regex -file $file {
'\b\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}\b' { # MM/dd/yyyy HH:mm:ss
[datetime] $Matches[0]
}
'\b\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\b' { # yyyy-dd-MM HH:mm:ss
[datetime] $Matches[0]
}
}
注意,示例行中的两种格式都可以直接转换为 [datetime]
如果还有其他格式,则请在相应的分支处理程序中执行 ::ParseExact()调用。
上面的结果(在我的 en-US系统上):
Wednesday, November 11, 2020 11:23:45 AM
Wednesday, November 25, 2020 11:23:46 AM

关于powershell - Powershell:无需使用Regex从字符串(11/11/2020 11:23:45 Text2 12345)中提取日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64708970/

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