如何在CSV中修改当前PowerShell会话中的字符串

时间:2016-03-14 10:44:19

标签: powershell

我需要导入一个csv,选择一个字符串并将其某些部分的值更改为$env:username。我想我必须使用select-string来获取字符串,但我仍然坚持改变价值。或者是否可以将$env:username直接写入csv?我无法做到。此外,CSV应保持原样,只有当前的PowerShell会话需要正确的字符串

CSV如下所示,userhome应替换为$env:username

Test        Test2
-----       -----
Hi          C:\user\userhome
something   C:\test\install
hello       C:\windows

这就是我尝试但我没有成功。

$test.Test2 | sls userhome -replace ($env:username)

另一种方法:

sls ($test.Test2).value -replace ("userhome",$env:username)

编辑:这是需要此csv的整个命令 - 仅供参考:

$Drives = Import-CSV .\NetworkDrives.csv -Delimiter ';' | ? {(($_.Group).split(',') -contains $UserOU) -and (!(Test-Path $_.Letter))} | % { #Do Stuff }

1 个答案:

答案 0 :(得分:0)

我很高兴PetSerAl在评论中的回答对你有用。我个人认为使用Get-Content可能更简单,对其运行-Replace,然后导管到ConvertFrom-CSV而不是Import-CSV

$Drives= (Get-Content .\NetworkDrives.csv) -Replace "userhome",$env:username | ConvertFrom-CSV -Delimiter ';' | ? {(($_.Group).split(',') -contains $UserOU) -and (!(Test-Path $_.Letter))} | % { #Do Stuff }