使用正则表达式替换文本:保留时间删除日期的PowerShell/CMD实现
没问题,我给你准备了PowerShell和CMD两种环境下的代码示例,轻松帮你提取出时间部分:
PowerShell 解决方案
如果你的文本保存在input.txt中,运行下面的命令就能把处理后的内容输出到output.txt:
Get-Content "input.txt" | ForEach-Object { $_ -replace '\d{4}-\d{2}-\d{2}T', '' } | Set-Content "output.txt"
说明
\d{4}-\d{2}-\d{2}T是正则表达式,专门匹配2019-08-09T这种格式的日期前缀- 把匹配到的部分替换为空字符串,就只剩下后面的时间部分了
- 如果需要直接在控制台查看结果,去掉
| Set-Content "output.txt"即可
CMD(命令提示符)解决方案
如果你习惯用CMD,可以用这个批处理脚本(保存为extract-time.bat,和你的input.txt放在同一目录):
@echo off setlocal enabledelayedexpansion set "inputfile=input.txt" set "outputfile=output.txt" :: 清空已存在的输出文件 if exist "%outputfile%" del "%outputfile%" :: 逐行处理输入文件 for /f "tokens=*" %%a in (%inputfile%) do ( set "line=%%a" :: 截取从第10个字符开始的内容(跳过前面的日期部分) set "line=!line:~10!" echo !line! >> "%outputfile%" ) echo 处理完成!结果已保存到%outputfile% endlocal
说明
- 因为你的时间戳格式固定,日期部分刚好是10个字符(比如
2019-08-09T),所以直接从第10位开始截取就能得到时间 - 启用
enabledelayedexpansion是为了在循环里正常修改和读取变量
内容的提问来源于stack exchange,提问作者Andrés Díaz
相关产品推荐
相关产品推荐

