Используйте компонент affix
, включенный в Bootstrap. Начните с 'navbar-static-top', и это изменит его на fixed
, когда будет достигнута высота вашего заголовка (содержимое над панелью навигации) ...
$('#nav').affix({
offset: {
top: $('header').height()
}
});
Это работает, и, вероятно, есть другие способы сделать это:
foreach ($i in $input) {
$i
}
17:12:42 PS> 1..20 | . \ cmd-input.ps1
1
2
3
- снип -
18
19
20
Выполните поиск по запросу "powershell $ input variable", и вы найдете дополнительную информацию и примеры.
Вот пара:
Функции и фильтры PowerShell PowerShell Pro!
(см. Раздел «Использование специальной переменной PowerShell« $ input »»)
«Скрипты, функции и блоки скриптов имеют доступ к переменной $ input, которая обеспечивает перечислитель для элементов во входящем конвейере».
или
$ input gotchas «PowerBlog PowerShell Дмитрия и не только
« ... в основном $ input в перечислителе, который обеспечивает доступ к имеющемуся конвейеру ».
Для командной строки PS, а не Командная строка DOS Командный процессор Windows.
В версии 2 вы также можете принимать ввод конвейера (по propertyName или byValue), добавлять псевдонимы параметров и т. Д .:
function Get-File{
param(
[Parameter(
Position=0,
Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)
]
[Alias('FullName')]
[String[]]$FilePath
)
process {
foreach($path in $FilePath)
{
Write-Host "file path is: $path"
}
}
}
# test ValueFromPipelineByPropertyName
dir | Get-File
# test ValueFromPipeline (byValue)
"D:\scripts\s1.txt","D:\scripts\s2.txt" | Get-File
- or -
dir *.txt | foreach {$_.fullname} | Get-File
Вы можете написать фильтр, который является частным случаем функции, например:
filter SquareIt([int]$num) { $_ * $_ }
, или вы можете создать аналогичную функцию, например, так:
function SquareIt([int]$num) {
Begin {
# Executes once before first item in pipeline is processed
}
Process {
# Executes once for each pipeline object
$_ * $_
}
End {
# Executes once after last pipeline object is processed
}
}
Вышеупомянутое работает как интерактивная функция Definiton или если в сценарии может быть разбит на ваш глобальный сеанс (или другой сценарий). Однако в вашем примере указано, что вам нужен сценарий, поэтому здесь он находится в сценарии, который можно использовать напрямую (точки не требуются):
--- Contents of test.ps1 ---
param([int]$num)
Begin {
# Executes once before first item in pipeline is processed
}
Process {
# Executes once for each pipeline object
$_ * $_
}
End {
# Executes once after last pipeline object is processed
}
В PowerShell V2 это немного изменилось с "расширенными функциями", которые включают функции с теми же функциями привязки параметров у скомпилированных командлетов. См. Это сообщение в блоге для примера различий. Также обратите внимание, что в этом случае с расширенными функциями вы не используете $ _ для доступа к объекту конвейера. С помощью расширенных функций объекты конвейера привязываются к параметру так же, как и с командлетом.