我必须显示四列,但每次显示三列,由于空间问题不需要显示列引用。此代码允许显示不在列引用中的单元格。当单元格匹配时,其他列中的单元格就会消失。
文件:
ComputerName OtherComputerName OtherComputer AndAgain
infra-1 infra-852 infra-2 infra-99
infra-98 infra-85 infra-44 infra-23
infra-5 infra-8 infra-1 infra-10
infra-2 infra-55 infra-8 infra-70
infra-62 infra-5 infra-852 infra-5
Run Code Online (Sandbox Code Playgroud)
脚本:
$csv = Import-Csv .\test1.csv -Delimiter ';'
$ref = @($csv.ComputerName)
foreach ($row in $csv) {
foreach ($col in 'OtherComputerName', 'OtherComputer', 'AndAgain') {
if ($ref -contains $row.$col) { $row.$col = '' }
}
}
$csv
Run Code Online (Sandbox Code Playgroud)
PS 上的结果:我不想显示 ComputerName 列并取消单元格之间的空间。
OtherComputerName OtherComputer AndAgain
----------------- ------------- --------
infra-852 infra-99
infra-85 infra-44 infra-23
infra-8 infra-10
infra-55 infra-8 infra-70
infra-852
Run Code Online (Sandbox Code Playgroud)
预期结果:
OtherComputerName OtherComputer AndAgain
----------------- ------------- --------
infra-852 infra-44 infra-99
infra-85 infra-8 infra-23
infra-8 infra-852 infra-10
infra-55 infra-70
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以列出要包含的所有列/属性
$csv | Select-Object OtherComputerName,OtherComputer,AndAgain
Run Code Online (Sandbox Code Playgroud)
或用于-ExcludeProperty删除命名的 - 但必须至少有一个 - 属性(位置 0 不必写出,只需对所有位置使用星号)
$csv | Select-Object * -ExcludeProperty ComputerName
Run Code Online (Sandbox Code Playgroud)
这里的示例输出完全符合您的要求:
OtherComputerName OtherComputer AndAgain
----------------- ------------- --------
infra-852 infra-99
infra-85 infra-44 infra-23
infra-8 infra-10
infra-55 infra-8 infra-70
infra-852
Run Code Online (Sandbox Code Playgroud)
不是一个表,而是一个缩小的列:
$csv|select Othercomputer|where Othercomputer -ne ''
Run Code Online (Sandbox Code Playgroud)
示例输出:
OtherComputer
-------------
infra-44
infra-8
infra-852
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17440 次 |
| 最近记录: |