2016-09-02 2 views
1

я искать справочную информацию по моей теме, но не нашел что-то близкое к тому, что мне нужно, то вот мое сомнение:Проверка размера файла GT 0 в Powershell

Мне нужно, чтобы проверить размер файла в если он превышает 0 байт, все в порядке, чтобы продолжить процесс, иначе прекратите запись текстового сообщения и отправьте код ошибки = 1.

Я пробовал нижеследующее, но не успел записывая сообщение в журнал:

$FileExists1 = "D:\TEST\FILE\test.txt" 

IF (Test-Path $FileExists1) { 
    If ((Get-Item $FileExists1).length -gt 0kb) { 
     Write-Output [$(Get-Date)]:" FILE IS OK FOR PROCESSING! - RC = $rc" 
    } 

Else { 
     $rc = 1 
     Write-Output [$(Get-Date)]:" FILE HAS 0 BYTES AT D:\TEST\FILE\" 
     Write-Output [$(Get-Date)]:" VALIDATION FINISHED - RC = $rc" 
     Exit $rc 
    } 
} 

Кто-нибудь из вас знает, что я могу сделать?

Цените свою помощь!

+1

Вы получите ответы на свой вопрос, если вы помечаете его языком программирования, о котором вы просите, а не просто «файл» и «размер». –

+1

Спасибо, Ари, только что обновил его. – DevHawk

+0

Что означает «*, но не имеет успеха при записи сообщения в журнал: *» означает? Какой журнал? – TessellatingHeckler

ответ

1

Код работает абсолютно нормально. Однако убедитесь, что вы указали начальное значение на ваш «$ rc».

PS C:\WINDOWS\system32> 

$FileExists1 = 'E:\Work\Powershell\scripts\demo\demo.txt' 

IF (Test-Path $FileExists1) { 
    If ((Get-Item $FileExists1).length -gt 0kb) { 
     Write-Output [$(Get-Date)]:" FILE IS OK FOR PROCESSING! - RC = $rc" 
    } 

Else { 
     $rc = 1 
     Write-Output [$(Get-Date)]:" FILE HAS 0 BYTES AT D:\TEST\FILE\" 
     Write-Output [$(Get-Date)]:" VALIDATION FINISHED - RC = $rc" 
     Exit $rc 
    } 
} 
[09/02/2016 23:55:15]: FILE HAS 0 BYTES AT D:\TEST\FILE\ 
[09/02/2016 23:55:15]: VALIDATION FINISHED - RC = 1 

Однако, если вы запустите код еще раз в том же объеме, значение переменной $ гс будет равен 1. Таким образом, убедитесь, что вы повторно инициализировать значение 0 или что-то другое, так что это может не приведет к неправильному результату.

+0

Да, я инициализировал его как $ rc = 0, здесь был экземпляр и вставка. Кажется, что проблема связана с Autosys. :( – DevHawk

+0

Тогда ваш вопрос должен ссылаться на Autosys и как вы его используете ...? –

0

Проблема с выдачей журнала? Запись-запись будет записываться на консольный хост. Вместо этого используйте out-file или tee-object

«[$ (Get-Date)]:« У ФАЙЛА 0 БАЙТОВ В D: \ TEST \ FILE \ '"| Из-файла D: \ example.log

Также переменные $ гс не определен, если файл больше, чем 0.