我可以使用以下命令成功检查文件是否存在且大于 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
}
如果有人有更清晰的解决方案,我仍然很乐意看到它。
编辑:对我的解决方案做了很大改动。同样,如果有更好的方法,我非常乐意接受有助于我提高整体知识/技能的建议。