我需要导入一个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 }
答案 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 }