【发布时间】:2019-01-02 19:54:20
【问题描述】:
我正在编写一个脚本,它基本上从另一个工具生成的 excel 文档中读取数据。它以下列格式列出文件年龄。我的问题是我想处理每个单元格值并根据该值更改单元格颜色。所以任何超过 1 年的东西都会变成红色,超过 90 天就会变成黄色\橙色。
所以经过一番研究,我选择使用if 语句来确定它何时大于 0 年,这似乎工作正常,但是当我到达天数部分时,我不确定如何提取 JUST当您到达y 时,每个单元格中d 左侧的数字部分如果它刚刚停止,或者只有在$_ 包含d 时才可能只读取左侧数字,那么我可以进一步处理如果那值为-gt 90?我不确定如何仅当可变长度字符串是字符左侧的数字时才提取它们。我考虑使用以下方法的组合来查找字符并返回 y 或其他内容。
Find character position and update file name
可能的年龄格式:
- 13y170d
- 3y249d
- 8h7m
- 1y109d
- 1y109d
- 1y109d
- 5d22h
- 3y281d
- 3y184d
- 11y263d
- 7m25s
-
1 小时 14 分
[regex]$years = "\d{1,3}[0-9]y"[regex]$days_90 = "\d{0,3}[0-9]d"
根据年龄(年)有条件地格式化/着色行
if ( $( A$_ -match "$years") -eq $True ) {
$($test_home).$("Last Accessed") | ForEach-Object { $( $($_.Contains("y") -eq $True ) { New-ConditionalText -Text Red } }
根据年龄(90 天以上)有条件地格式化/着色行
if ( $( A$_ -match "$days_90") -eq $True ) { New-ConditionalText -Text Yellow }
【问题讨论】:
标签: powershell replace find character