我正在使用下面的代碼,在除第一列和空單元格值之外的所有列上添加額外的特殊字符,但代碼還沒有作業。
$path = 'F: emp.csv'/span>
Import-Csv $path | ForEach-Object {
if ($_.value -eq $path.value ) {
$_.value = '; ' $path.value
}
$_。
} | Export-Csv $path -NoTypeInformation
更多細節請參見圖片。 圖片
。請在Google Drive上找到上傳的csv檔案。 CSV檔案
uj5u.com熱心網友回復:
我不確定你想用$a做什么,但如果我們把它去掉,似乎你已經接近了:)
我們不需要檢查一個值是否等于什么,我們只需要把每一個物件添加一個新的屬性(即,一個新的列)到物件中。 我們將稱其為'B',并使其值與'A'中的值相同,但使用-replace在其前面加一個';'。 這個替換運算子使用了regex,所以如果我們指定要替換'^',我們就是在說我們要替換行/值的開頭。 我們用';'替換它,并保存為我們的值。 然后我們像你已經做的那樣輸出物件,然后再轉換回csv。
$path = 'F: emp.csv'/span>
Import-Csv $path | ForEach-Object {
$_ | Add-Member -NotePropertyName 'B' -NotePropertyValue ($_. A -replace '^', ' ;')
# 或者代替-replace,我們可以做類似于你的嘗試。
# $_ | Add-Member -NotePropertyName 'B' -NotePropertyValue ('; ' $_.A)
$_。
} | Export-Csv $path -NoTypeInformation
Update 根據你的評論,這段代碼應該更新所有列的值,除了第一列的值不是空的/空的
。$path = 'F: emp.csv'/span>
$data = Import-Csv $path >。
# 追蹤所有的屬性(列)減去第一個。
$props = $data[0].psobject.Properties.Name | Select-Object -Skip 1>
$data | ForEach-Object {
foreach ($prop in $props) {
if ( -not ([string]::IsNullOrWhiteSpace($_.$prop) ) {
$_.$prop = ';' $_.$prop >。
}
}
$_.
} | Export-Csv $path -NoTypeInformation
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/310252.html
標籤:
