Powershell - 如果文件(通配符)存在且大于 0kb

Powershell - 如果文件(通配符)存在且大于 0kb

我可以使用以下命令成功检查文件是否存在且大于 0kb:

$getFILE = 'C:\DIR\FILE1.txt'

IF (test-path $getFILE){
    IF ((get-item $getFILE).length -gt 0) {
        "OK";return 0
    }
    ELSE {
        "0 bytes";return 2
    }
}
ELSE {
    "doesn't exist";return 1
}

我可以使用以下命令检查通配符文件是否存在:

$getFILE = 'C:\DIR\FILE*.*'

IF (test-path $getFILE){
    "OK";return 0
}
else {
    "doesn't exist";return 1
}

不过,我无法让这两个概念一起工作。在下面,如果通配符文件存在;返回始终为 0:

$getFILE = 'C:\DIR\FILE*.*'

IF (test-path $getFILE){
    IF ((get-item $getFILE).length -gt 0) {
        "OK";return 0
    }
    else {
        "0 bytes";return 2
    }
}
else {
    "doesn't exist";return 1
}

答案1

好的,再多玩一会儿,我找到了一些可行的方法:

$vDIR = 'C:\DIR'
$vFILE = 'FILE*.*'

$proc = @(Get-ChildItem $vDIR -Recurse -Include $vFile | Where {$_.length -gt 0})
If ($proc.count -gt 0) {
   ForEach ($item in $proc) {
      Do a bunch of stuff
   }
Else {
   Do this other thing
}

如果有人有更清晰的解决方案,我仍然很乐意看到它。

编辑:对我的解决方案做了很大改动。同样,如果有更好的方法,我非常乐意接受有助于我提高整体知识/技能的建议。

相关内容