使用变速驱动我们无法导入包含CSV字符串:PowerShell的:转发参数命令行
Import-Csv Variable:\myCsvVariable
所以我写了一个简单的功能,做同样的事情:
Function Import-CsvString {
param(
[Parameter(Mandatory=$true,ValueFromPipeline=$true)][string[]]$CsvContent,
[char]$Delimiter
)
if ($input) {
$CsvContent = $input;
}
$temp = [System.IO.Path]::GetTempFileName()
($CsvContent | Out-String) | Set-Content -Path $temp;
$m = Import-Csv -Path $temp -Delimiter $Delimiter
Remove-Item $temp -Force
$m;
}
是否有可能将非指定的Delimiter
传递给Import-Csv
(或任何其他命令)?
我知道,你可以很容易地在Delimiter
是否不为空做一个if...then...else
,并调用Import-Csv
带或不带Delimiter
,但是这不是我问。
谢谢。 PowerShell中有很多动词,我不知道这个。我想下次我会做'get-command | ? {$ _。Name -match'。* csv。*}'在重新发明轮子之前。 –
你可以简单地调用'gcm * csv *':)。你可以使用'Get-Verb'获得一个vergs列表。希望有所帮助!无论如何,你应该看看splatting的论点。这是处理参数逻辑时POwerShell的一个非常强大的功能。 –
谢谢,有很多PowerShell的功能我不知道:) –