我正在尝试编写一个脚本,该脚本将读取通过查询AD生成的CSV以获取用户信息(该部分已完成),但之后将允许我在字符串的每个值的开头添加一个字符串。 CSV文件,然后将其导出。
例如,我们有这个CSV文件:
“显示名称”, “办公室”
鲍勃,7142
珍妮特,8923
圣诞老人,0912
NicCage,0823
我想为“Office”输入每个条目,在它之前添加字符串“BUG”,然后将其导出。修改后的CSV应如下所示:
“显示名称”, “办公室”
鲍勃,BUG7142
珍妮特,BUG8923
圣诞老人,BUG0912
NicCage,BUG0823
此时,我一直试图只读“Office”列,然后用“Write-Host”显示它。我的想法是,如果我能做到这一点,那么也许我可以创建一个类似的新变量:
$BUG = "BUG"
$NewVar = $BUG$Office
希望看起来像第二个CSV文件。我对powershell脚本非常新。
我到目前为止所做的尝试是:
尝试#1:
$UserList = Import-CSV C:\Users\username\CSV.csv
$UserList | ForEach-Object ($_.Office) { $UserList }
尝试#2:
$projectName = import-csv C:\Users\username\CSV.csv | % {$_.Office}
$BUG = "BUG"
$projectName | ForEach-Object ($_) {$projectName}
尝试#3:
$UserList = Import-CSV C:\Users\username\CSV.csv
#ForEach ($Office in $Userlist) {
#Write-Host $UserList.Office
#}
尝试#4:
Import-Csv "C:\Users\username\CSV.csv" -Header ("displayname","Office","whenCreated","EmailAddress") | Select-Object Office | Export-CSV -Path C:\users\Username\test.csv
在使用ForEach-Object循环结构之前,我已经让它读出了Office编号,但是它永远不会停止读取办公室编号,这样就没用了。
我认为我正朝着正确的方向前进,但我无法弄清楚如何修改这样的列。
答案 0 :(得分:2)
不是尝试提取Office
列,只需将完整数据集(所有列)传递给ForEach-Object
,而是更改Office
属性的值并将其传回{ {1}}:
Export-Csv