【问题标题】:PowerShell - Filter childitem based off filename and extensionPowerShell - 根据文件名和扩展名过滤子项
【发布时间】:2019-04-26 23:32:46
【问题描述】:

我正在尝试根据包含前一天的变量和文件扩展名的文件名过滤结果。

我尝试使用不同的方法进行过滤,但最新的是我得到的关闭。

$Date = Get-Date #-Format "yyyyMMdd"
$DateAdd = (Get-Date).AddDays(-1)
$DateStr = '{0:yyyyMMdd}' -f $DateAdd

$srcRoot = "U:\test\Processed"  
$exRoot = "U:\test\Extract" 


Get-ChildItem $srcRoot -Filter *.zip | Where-object -Property Name -Like *$DatStr  | Expand-Archive -DestinationPath $exRoot -Force

截至目前,代码获取了 srcRoot 目录中的所有压缩文件。我只是想返回日期变量的压缩文件。

【问题讨论】:

  • 我在这里看到了一个类型,在Where-object 你正在寻找` *$DatStr , this should probably be $DateStr`
  • 为什么不使用-Filter "<asterisk>$DateStr<asterisk>.zip"
  • 日期是文件名的一部分,还是要使用实际的文件日期?
  • @FoxDeploy,当我尝试 $DateStr 时,整个脚本似乎忽略了 Get-ChildItem $srcRoot -Filter *.zip | Where-Object -Property Name -Like $DateStr 并直接进入 Expand-Archive 语句。
  • @AdminOfThings ,感谢您的推荐。这可以根据需要工作,我之前的一项测试中的语法可能不正确。

标签: powershell


【解决方案1】:

使用上面 AdminOfThings 评论中的推荐。我能够在尝试时过滤结果。

Get-ChildItem $srcRoot -Filter "*$DateStr*.zip" 

这会在测试后返回正确的文件。

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 2012-01-23
    • 2022-01-06
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 2020-11-01
    • 2011-12-17
    相关资源
    最近更新 更多