Copy&Paste — разбор

Возвращаюсь к этому посту, а то некоторые товарищи в комментах, допустили возможность заподозрить меня в диверсии😉 Впрочем, надеюсь, интересно всё равно многим будет🙂

Я просто сначала сунул массив чисел в переменную $numbers, и добавил несколько переносов строк, пробелов и комментариев🙂

$numbers = 64,0,5,6,53,0,3,3,4,3,51,0,2,2,8,2,50,0, 2,2,14,2,2,2,3,4,3,5,3,2,5,2,2,3,4,3,1,0,2,2,14,2,2,2,2,2,2,2,2,2,2,2,2,2,5, 2,2,4,2,4,1,0,2,2,8,2,4,6,2,2,2,2,2,5,3,5,2,2,2,2,1,4,1,2,1,0,3,3,4,3,5,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,0,5,6,7,2,2,2,3,4,3,6,2,6,1,2,2, 2,6,2,1,0,64,0,64,0,8,6,3,4,6,4,4,4,3,3,5,2,4,2,6,0,8,2,3,1,2,2,2,2,5,1,1,2, 3,2,2,2,2,4,2,4,4,2,6,0,8,2,6,2,2,2,4,1,2,2,3,2,2,2,2,2,1,4,1,2,4,2,6,0,8,2, 6,2,2,2,2,8,2,2,2,2,2,2,2,2,2,2,12,0,8,2,7,4,3,2,4,2,3,4,3,2,6,2,4,2,6,0,64,0 cls # Очищаем экран, cls - алиас к Clear-Host $numbers | # Передаем массив чисел по одному в конвейер %{ # Знак процента - это лишь алиас к ForEach-Object, # то есть для каждого числа мы выполняем код следующий в фигурных скобках. # Текущее, обрабатываемое число помещается в специальную переменную $_ if ( $_ -eq 0) # Если число равно 0 то надо сделать перенос строки { "`n"; # Возвращаем спецсимвол переноса строки (от NewLine) # Так как тут переменная не присваивается ни к чему, # и не происходит вызова команды, PowerShell считает (и правильно) # что мы просто не написали команду Write-Output, и передает эту # переменную дальше (см. конец скрипта) $b = 1 # присваиваем переменной $b значение 1 (у нас каждая строка # начинается с пробелов) } else # Число не 0, а значит задает количество следующих подряд символов. # нам надо просто чередовать их, - пробелы, закрашенные, пробелы ... # для чего я использую переменную $b🙂 { if ( $b ) # if пытается преобразовать любое выражение в условии в boolean, # в данном случае 1 - это $true, а 0 - $false. Проверить можно так: # [bool]1 # Я использовал тут 0 и 1 потому что они короче чем $true и $false😉 { "#" * $_ # в одном случае выдаем решетку умноженную на число... # кстати попробуйте, "abc"*3 выдаст abcabcabc🙂 } else { " " * $_ # а в этом случае выдаем нужное колчество пробелов. } }; $b = !$b; # меняем значение $b на противоположенное. ! - эквивалент -not sleep -m $_ # ждем такое же кол-во миллисекунд сколько символов # sleep - алиас к start-sleep🙂 } | write-host -n # а теперь всё что попало на вывод foreac-object (строки с "`n" # и последовательностями решеток и пробелов, передаем по конвейеру # на командлет write-host. # -n это автоматическое сокращение от параметра -NoNewLine.

Кстати точки с запятой тут можно убрать, их заменяют переносы строк.

PS: А сидеть под админом всё равно вредно :-Р

 

Опубликовано в PowerShell. 1 Comment »

Один ответ to “Copy&Paste — разбор”

  1. Evgeny_Fedyakov Says:

    осталось сделать удобный редактор, который на нужную фразу выдавал бы массив )))


Обсуждение закрыто.

%d такие блоггеры, как: