我的代码不会在屏幕上显示“没有要处理的文件”。应该对目录中的文件进行计数,如果目录中没有文件,则应显示“没有要处理的文件”,然后退出。
# 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.."}
}
我希望看到“没有要处理的文件”。
答案 0 :(得分:5)
这里有4个问题:
; return
退出函数。如果函数不执行其他任何操作,甚至可能不需要这样做。另外,您可以删除| Measure-Object
,因为由Get-ChildItem返回的对象System.IO.FileInfo已经具有“计数”方法。
这是您代码的修订版,其中包含所有更改:
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.." }
}
答案 1 :(得分:0)
有3个问题
1. Exit
无法通过管道传递到。如果要退出会话,请使用Exit-PSSession
,这将关闭窗口。
2.应将“等于”从=
更改为-eq
3. "0"
应该更改为0
,因为它是整数
If ($Measure -eq 0)
{Write-Host "No files to process"|Exit-PSSession}
else
{Write-Host "There are files to process.."}