我是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"
请注意,{$_}
是"有值"的速记