我正在编写一个 powershell 高级函数,它将从管道中获取输入。更具体地说,我将从 import-csv 导入。问题是我正在使用的 csv 文件的列标题使用对 ps 无效的语法。这是我的代码的样子
function my-function{
[CmdletBinding()]
params
(
[Parameter(Mandatory=$false,ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[string]$Id = $_.ID,
[(Parameter(Mandatory=$false,ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[string]$IdRaw = $_."ID(RAW)",
)
BEGIN{
#Sets up a db connection
}
PROCESS{
#Builds an insert query with csv members
}
END{
#closes db connection
}
}
ID,ID(RAW),Date Time,Date Time(RAW),Type,Type(RAW)
29874,29874,4/18/2012 23:58,41018.20753, Servername, ServernameRaw
当我使用 csv 输入执行此操作时,$Id 的值变为 2905,而 $IdRaw 变量采用整个 $_ 哈希表的字符串表示形式。只是为了详细说明任何具有有效名称 {URL, ID, Status} 的参数都可以。任何包含空格或 (RAW) 的都会收到整个 $_ 变量。
-帕特里克