powershell - PowerShell - 如何将内容添加到 CSV 文件中的特定单元格
问题描述
我想就如何将内容添加到已包含填充数据的 CSV 文件中的特定单元格寻求您的帮助,这是我的 CSV 文件的示例: 带有填充数据的 CSV 文件
这是我想要实现的示例:
UPN | Skype? | 电视? | 白板? | 描述 |
---|---|---|---|---|
房间1 | 真的 | 真的 | 真的 | Skype;电视; 白板 |
房间2 | 真的 | 错误的 | 错误的 | Skype |
房间3 | 错误的 | 真的 | 真的 | 电视; 白板 |
如果room1
有 Skype、TV 和 Whiteboard,则使用这些值创建描述。如果其中任何一个是错误的,请跳过它们。是否有意义?
如何使用 PowerShell 实现这一目标?
这是我到目前为止所得到的:
Import-Csv $MeetingRooms | ForEach-Object {
# Description field on Column Number 19
$col = 19
if ($_.Skype -eq $true) {
$var = 'Skype for Business;'
Add-Content -path $_ -Value "$(","*$col)$var"
}elseif ($_.TV -eq $true) {
$var = 'TV;'
Add-Content -path $_ -Value "$(","*$col)$var"
}elseif ($_.Whiteboard -eq $true) {
$var = 'Whiteboard;'
Add-Content -path $_ -Value "$(","*$col)$var"
}
}
我在这里错过了一些明显看不到的大东西。
非常感谢,贡萨洛
解决方案
以下假设具有索引的列19
名为CurrentFacilities
。
Import-Csv $MeetingRooms | ForEach-Object {
$obj = $_
$obj.CurrentFacilities =
($obj.CurrentFacilities -split ';\s*') +
('Skype', 'TV', 'Whiteboard').Where({ $obj.$_ -eq 'true' }) -join '; '
$obj # Output the modified object.
}
推荐阅读
- webrtc - Tizen 无法识别 Javascript async 和 await
- kubernetes - 添加 pods/portforward 的创建权限似乎删除了 configmaps 的获取权限
- sage - 我可以使用 SageMath 根据其他函数简化数学表达式吗?
- android - 始终将按钮放在布局底部
- angular9 - Angular 9 迁移更改了 tsconfig.app.json
- asp.net - Amazon RDS 连接字符串设置
- python - 使用 Python3 将 CSV 导入 Firestore
- c++ - 二进制补码系统中的有符号整数数组乘法
- javascript - 另一个未捕获的 RangeError:最大调用堆栈大小难题
- c - Linux socket C 应用程序 - 如何确保从一台服务器到许多其他服务器的消息全部成功或全部失败?