Мой код не будет писать "Нет файлов для обработки" - PullRequest
2 голосов
/ 14 мая 2019

Мой код не будет отображать «Нет файлов для обработки» на экране.Предполагается, что он считает количество файлов в каталоге, и если их нет, он должен отобразить «Нет файлов для обработки» и затем завершиться.

# 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.."}
}

Я ожидаю увидеть «Нет файлов для обработки».

Ответы [ 2 ]

5 голосов
/ 14 мая 2019

Здесь есть 4 проблемы:

  1. Вы используете '=', который используется только для назначения.Для сравнения используйте '-eq.
  2. Вы заключаете целое число в кавычки, превращая его в строку.Просто удалите кавычки.
  3. Как упомянуто ineedalife, вы собираетесь выйти.Вместо этого вы должны использовать точку с запятой и ключевое слово return ; return для выхода из функции.Даже это, вероятно, не требуется, если функция больше ничего не делает.
  4. Вы пытаетесь использовать «Measure» в качестве имени функции.Это псевдоним Measure-Object!Просто измените имя на другое, например «Measure-Files»

. Кроме того, вы можете удалить | Measure-Object, поскольку объект System.IO.FileInfo, возвращаемый Get-ChildItem, уже имеет "Метод подсчета.

Вот пересмотренная копия вашего кода со всеми изменениями:

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.." }
}
0 голосов
/ 14 мая 2019

Есть 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.."}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...