【发布时间】: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