我有一个名为test.txt
的文件,其中有一个序列:
1 3 5 6 7
我想打印出丢失的数字,然后发现一个magic code可以完美完成:
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 数字:
答案 0 :(得分:4)
读取文件,从第一个数字开始,最后一个结束,并输出文件中没有的任何数字...
$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}
}
答案 1 :(得分:1)
只需将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++
}