Tôi muốn tạo một chức năng PowerShell liệt kê một số dữ liệu và kích hoạt một khối tập lệnh trên tất cả các lần xuất hiện.Chức năng PowerShell với khối tập lệnh tham số
Bởi bây giờ tôi có (điều này không phải là mã thực tế, nhưng nó cho thấy vấn đề của tôi):
function Invoke-TenTimes
{
[CmdletBinding()]
param
(
[Parameter(Mandatory=$true, Position=0)]
[ScriptBlock]$Action
)
process
{
$digits = 0..10
$digits | % {
$Action.Invoke($_);
}
}
}
tôi đặt chức năng này trong mô-đun của tôi. Tuy nhiên, tôi không nhận được bất kỳ kết quả nào khi tôi gọi:
Invoke-TenTimes { $_ }
Đầu ra trống (không có gì được hiển thị).
Nếu tôi gọi
Invoke-TenTimes { $_ -eq $null }
tôi được mười true
. Trong thực tế, tôi thấy rằng $_
là null.
Cách thích hợp để điền $_
là gì?
gì là lái xe cho tôi điên, là nếu tôi đặt chức năng này và các cuộc gọi trong file ps1 cùng, nó hoạt động (nhưng tôi muốn vượt qua khối kịch bản theo yêu cầu):
function Invoke-TenTimes
{
[CmdletBinding()]
param
(
[Parameter(Mandatory=$true, Position=0)]
[ScriptBlock]$Action
)
process
{
$digits = 0..10
$digits | % {
$Action.Invoke($_);
}
}
}
Invoke-TenTimes { $_ }
Cảm ơn! điều này đã giải quyết được vấn đề của tôi và bây giờ tôi có thể sử dụng một khối tập lệnh với $ _ :). –