我仍然試圖將包含某些數據的CSV文件(用逗號分隔)中的重複項從動態排序並刪除到新的CSV文件中。得到了-Property $ SortByColNames的堆棧溢出成員的幫助,但現在我的問題在ForEach部分。如果我在大括號內使用ForEach的編號部分和「-f」後面的列名進行硬編碼,但如果我嘗試將這兩個參數傳遞給函數中的參數,它會給我一個包含物理參數的CSV文件-f部分的字符串。使用PowerShell中的排序對象進行排序第2部分
我試圖讓$ ShowColsByNumber一個字符串和一個對象變量和$ ColumnValueFormat也作爲一個字符串和一個對象。既沒有工作。
任何人都可以請幫忙。
下面是工作的代碼,是不代碼後:
作品
[string] $Source = 'e:\Temp\DataFromSkywardEdited.csv';
[string] $Destination = 'e:\Temp\DataFromSkywardRD.csv';
[object] $SortByColNames = 'LastName','FirstName';
Get-Content $Source |
ConvertFrom-Csv |
Sort -Property $SortByColNames -Unique |
ForEach {"{0},{1},{2},{3},{4},{5},{6},{7},{8}" -f $_.EmployeeID.Trim(), $_.FirstName.Trim(), $_.LastName.Trim(), $_.Location.Trim(), $_.Department.Trim(), $_.TelephoneNo.Trim(), $_.Email.Trim(), $_.EmpTypeCode.Trim(), $_.EmployeeTypeDescription.Trim()} |
Add-Content $Destination
不工作
[string] $Source = 'e:\Temp\DataFromSkywardEdited.csv';
[string] $Destination = 'e:\Temp\DataFromSkywardRD.csv';
[object] $SortByColNames = 'LastName','FirstName';
[string] $ShowColsByNumber = "{0},{1},{2},{3},{4},{5},{6},{7},{8}";
[object] $ColumnValueFormat = '$_.EmployeeID.Trim()', '$_.FirstName.Trim()', '$_.LastName.Trim()', '$_.Location.Trim()', '$_.Department.Trim()', '$_.TelephoneNo.Trim()', '$_.Email.Trim()', '$_.EmpTypeCode.Trim()', '$_.EmployeeTypeDescription.Trim()';
Get-Content $Source |
ConvertFrom-Csv -Delimiter $Delimiter |
Sort -Property $SortByColNames -Unique |
ForEach {$ShowColsByNumber -f $ColumnValueFormat} |
Add-Content $Destination;
由於您爲「$ _。EmployeeID.Trim()」插入文字字符串,您的替換將不起作用。這不會被調用並擴展爲添加到您的字符串。 –