%20%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82%20%D0%B8%20%D0%B5%D0%B3%D0%BE%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B5%200%20%D0%9A%D0%91.png)
Я могу успешно проверить, существует ли файл и больше ли его размер 0 КБ, используя следующее:
$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
}
Если у кого-то есть более чистое решение, я все равно был бы рад его увидеть.
EDIT: Изменил свое решение довольно сильно. Опять же, если есть лучший способ сделать это; я очень открыт для предложений, которые помогут мне улучшить мои общие знания/навыки.