在Get-ChildItem过滤器的变量中使用通配符

时间:2013-07-11 17:57:17

标签: powershell

以下是代码

$now = [System.DateTime]::Now

$filter = $now.ToString("MM_dd_yyyy") + "_*_S1.txt"
Write-Host $filter

Get-ChildItem -filter $filter | % {Write-Host $_}# Select-Object -OutVariable $files

Write-Host $files.GetType()

我可以输出“写入主机$”过滤器'声明并将其粘贴到PowerShell中并获得我期望的结果,因此我知道过滤器是正确的。是因为我在get-childitem调用中使用了一个变量吗?如何做到这一点。

1 个答案:

答案 0 :(得分:1)

你在滥用-OutVariable。它期望变量的名称没有 $。所以你应该使用Select-Object -OutVariable files

但你的代码非常非PowerShell-y。使用管道&这里完全不需要Select-Object。试试这个。

$filter = $(get-date -f "MM_dd_yyyy") + "_*_S1.txt";
$files = Get-ChildItem -filter $filter;