我的代码不会在屏幕上显示“没有要处理的文件”。它应该计算目录中的文件,如果没有,则应显示“没有要处理的文件”,然后退出。

# Function Measure, counts files to see if there are any to process.
Function Measure
{
$Measure = ( Get-ChildItem C:\temp\BDMDump\ | Measure-Object ).Count
    If ($Measure = "0")
            {Write-Host "No files to process"|Exit}
    else
            {Write-Host "There are files to process.."}
}

我希望看到“没有要处理的文件”。

最佳答案

这里有4个问题:

  • 您正在使用仅用于分配的“=”。使用'-eq进行比较。
  • 您将用引号将整数括起来,将其转换为字符串。只需删除引号。
  • 如ineedalife所述,您正在准备退出。您应该改用分号和return关键字; return退出该函数。如果函数不执行其他任何操作,甚至可能不需要这样做。
  • 您正在尝试使用“度量”作为函数的名称。这是Measure-Object的别名!只需将名称更改为其他名称,例如“Measure-Files”

  • 此外,您可以删除| Measure-Object,因为Get-ChildItem返回的对象System.IO.FileInfo已经具有“Count”方法。

    这是包含所有更改的代码的修订版:
    Function Measure-Files {
      $Measure = Get-ChildItem "C:\temp\BDMDump\"
      If ($Measure.Count -eq 0)
      { Write-Host "No files to process"; return }
      else
      { Write-Host "There are files to process.." }
    }
    

    关于powershell - 我的代码不会写 “No files to process”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56132991/

    10-13 09:01