【发布时间】:2017-11-30 02:25:02
【问题描述】:
我想从日志文件中获取已安装的版本和当前版本,我已经使用以下命令获得了输出:
$versions = Select-String -Path $path -Pattern "Comparing product versions" |
% { $_.Line.Split() }
$installed = $versions[6]
$installed = echo "$installed".Trim(",")
$current = $versions[7]
问题是:我不想硬编码。有没有像正则表达式这样的方法来替换它并分别获取安装版本和当前版本。
这是相关日志行的样子:
ISS_LOG [14:45:36]:比较产品版本 - 已安装 [1.2.0.10]、当前 [1.2.0.10]
【问题讨论】:
-
您究竟将什么称为“硬编码”?
-
如果我将字符串的位置指定为 7,那么这将是硬编码。在某些情况下,位置可能不同,因此我不会得到正确的输出。
-
抱歉,水晶球在清洁工那里。请提供示例输入并解释您要从中提取的内容。 Edit您的问题。
-
ISS_LOG [14:45:36]: Comparing Product Versions - Installed[1.2.0.10], Current[1.2.0.10]这是日志文件中的一行我想使用正则表达式在一行中获取输出 $installed=1.2.0.10 并在下一行中获取 $current=1.2.0.10
标签: regex powershell powershell-2.0