Распечатать пропущенный номер из последовательности - PullRequest
0 голосов
/ 16 октября 2018

У меня есть файл с именем test.txt, в котором у меня есть последовательность:

1
3
5
6
7

Я хотел бы напечатать пропущенные числа, и я нашел магический код , который это делаетотлично:

gc test.txt |% {$i = 1}{while ($i -lt $_){$i;$i++};$i++}

или вот это:

gc test.txt | sort {[int]$_} |% {$i = 1}{while ($i -lt $_){$i;$i++};$i++}

но я бы хотел напечатать ALL цифры:

  • In ЗЕЛЕНЫЙ номера в списке
  • В КРАСНЫЙ номера, отсутствующие в списке

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Просто вставьте Write-Host -Fore red/green в нужном месте:

gc test.txt | % {$i = 1}{while ($i -lt $_){write-host -Fore red $i;$i++};write-host -Fore green $i;$i++}

То же самое без псевдонимов:

Get-Content .\test.txt | ForEach-Object {$i = 1}{
   while ($i -lt $_){
     Write-Host -ForegroundColor Red $i
     $i++
   }
   Write-Host -ForegroundColor Green $i
   $i++
 }

enter image description here

0 голосов
/ 16 октября 2018

Чтение файла, начало с первого числа, конец до последнего и вывод любого числа, отсутствующего в файле ...

$TestFile = Get-Content Test.txt|Sort
[int]$TestFile[0]..[int]$TestFile[-1]|Where{$_ -notin $TestFile}

Изменить: Упс, вы хотитевсе числа.Это займет переключение, один момент для обновления.

$TestFile = Get-Content Test.txt|Sort
Switch([int]$TestFile[0]..[int]$TestFile[-1]){
    {$_ -notin $TestFile}{Write-Host "$_" -Fore Red;Continue}
   default {Write-Host "$_" -Fore Green}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...