我有以下方法来验证远程文件夹中是否存在文件,我需要检查文件的日期必须是当前日期。
如果我执行以下声明,它似乎可以正常工作
$Exs = Test-Path '\\srvcld\Homeware\Applications\Processed\Soc*' -NewerThan (Get-Date -UFormat "%d/%m/%Y")
但是当它在entiere脚本中运行时,它会返回以下错误:
测试路径:无法绑定参数' NewerThan'。无法转换价值" 02/23/2018"输入" System.DateTime"。错误:" String未被识别为有效的DateTime。"
您是否知道另一种方法可用于验证当前日期是否存在文件?
答案 0 :(得分:1)
这可能有助于你
Get-ChildItem -Path "<path>" | Where-Object {$_.LastWriteTime -ge (Get-Date).Date}
答案 1 :(得分:0)
请勿格式化日期。这会将其转换为[String]
,并在将其转换回[DateTime]
时依赖于您的文化。
相反,保持为[DateTime]
对象并将其传递给Test-Path
。 That's the type it's expecting anyway:
$Exs = Test-Path '\\srvcld\Homeware\Applications\Processed\Soc*' -NewerThan (Get-Date).Date
要添加到Dharini's answer,这会提供当前日期而非时间。如果您想查看类型,请运行以下命令。
$date1 = Get-Date -UFormat "%d/%m/%Y"
$date2 = (Get-Date).Date
$date1.GetType() # returns String
$date2.GetType() # returns DateTime