【问题标题】:Using a wildcard in a variable for Get-ChildItem filter在 Get-ChildItem 过滤器的变量中使用通配符
【发布时间】:2013-07-11 17:57:17
【问题描述】:

下面是代码

$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()

我可以获取 'Write-Host $filter' 语句的输出并将其粘贴到 PowerShell 并获得我期望的结果,因此我知道过滤器是正确的。是因为我在 get-childitem 调用中使用了一个变量吗?怎么办呢。

【问题讨论】:

  • 我的意思是描述性地展示您向我们提出的问题,而不是说您不理解某事:P 请记住,问题标题是出现在首页上的内容,是人们决定是否想要的原因看看你的问题。
  • $files 没有被您代码中的任何内容填充。
  • 我已尝试编辑标题以使其更具相关性

标签: powershell


【解决方案1】:

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

但是您的代码非常不符合 PowerShell-y。在这里使用管道和Select-Object 是完全没有必要的。试试这个吧。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2019-11-06
    • 2021-08-29
    • 2013-01-06
    相关资源
    最近更新 更多