PowerShell脚本以使用时间戳和空白行删除行



我是PowerShell的新手一个新文件。

我的脚本正在工作,但是如果我有空白,则失败。这是脚本。

$Culture = [System.Globalization.CultureInfo]::InvariantCulture
$Format = 'dd/MM/yyyy HH:mm:ss'
$Paths = "D:xxxyyyylog.txt","D:xxxzzzzlog.txt"
$Day = "20"
Foreach ($Path in $Paths)
{
  Get-Content $Path | where { [datetime]::ParseExact(([string]$_).Substring(0,19), $format, $culture) -ge (Get-Date).AddDays(-$Day) } | set-content $Path".new"
}

我尝试检查字符串是否为null,例如

Get-Content $Path | if(!([string]$_)::IsNullOrEmpty) | where { ([datetime]::ParseExact(([string]$_).Substring(0,19), $format, $culture) -ge (Get-Date).AddDays(-$Day)) } | set-content $Path".new"

但是它不起作用。

if()无法管道。

您需要使用与已经完成的方式相似的Where-Object

Get-Content $Path |
    Where-Object {$_} |
    Where-Object { ([datetime]::ParseExact(([string]$_).Substring(0,19), $format, $culture) -ge (Get-Date).AddDays(-$Day)) } |
    Set-Content $Path".new"

请注意,{$_}是"有值"的速记

相关内容

  • 没有找到相关文章

最新更新