Powershell:修改文本

时间:2010-10-20 09:02:48

标签: powershell

好吧,我放弃了!为什么这不起作用?我只是试图循环一个csv文件并用某个值替换第n列中的任何值。

$source = "C:\blah.csv"

(gc $source) | foreach{ $_.Split(',')[10] = 'something'} | sc $source

1 个答案:

答案 0 :(得分:0)

基本上,你正在尝试的是这样的:

$s = 'a,b,c,d,e'
$s.Split(',')[4] = 'something'
$s

这不起作用,因为你没有为任何变量分配'某事'。

我要么将文件读作csv(通过Import-CSV),要么(如果结构非常简单)使用正则表达式:

$s = 'c,d,e', 'c,d,x', 'z,f,d'
$s | % { $_ -replace '(?<=([^,]*,){2}).*','something'}