使用變速驅動我們無法導入包含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的功能我不知道:) –