如何将字符串附加到数据集中的其他字符串?

时间:2012-07-25 11:44:43

标签: string powershell append

我想在带有自定义字符串的数据集中附加几个字符串。

示例

数据集内容:

Test1
Test2
Test3

追加后的结果:

Test1.com
Test2.com
Test3.com

我是否必须使用正则表达式解析到每个Test [n]的末尾才能使用自定义字符串(.com)附加它?有没有人有一个例子来描述如何做到这一点?

我正在从SQL表中读取并将值写入DataSet,并以下列方式导出到CSV:

$DataSet.Tables[0] | ConvertTO-Csv -Delimiter ',' -NotypeInformation |`% { $_ -replace '"','' } |  out-file  $outfile -Encoding "unicode"

DataSet包含字符串,例如:

Banana01
Banana02
Apple01
Cherry01
Cherry02
Cherry03

我想要做的是将.com仅追加到Cherry01Cherry02Cherry03,并在追加.com之后将其导出为CSV文件。

3 个答案:

答案 0 :(得分:19)

有很多方法。以下是一些:

# Using string concatenation
'Test1','Test2','Test3' | Foreach-Object{ $_ + '.com' }

# Using string expansion
'Test1','Test2','Test3' | Foreach-Object{ "$_.com" }

# Using string format
'Test1','Test2','Test3' | Foreach-Object{ "{0}{1}" -f $_,'.com' }

答案 1 :(得分:9)

您可以使用以下内容:

示例1

$t = "test"
$t = $t + ".com"

示例2

$test = @("test1","test2")

$test | ForEach-Object {
$t = $_ + ".com"
Write-Host $t}

通过添加的代码,我做到了这一点。我没有数据库来测试它,所以我手动创建了数据集,因此您可能只需要将我的代码中的 $ DataSet [0] 更改为 $ DataSet。表[0]

$DataSet[0] | ConvertTO-Csv -Delimiter ',' -NotypeInformation  | Foreach-Object{$T=$_
IF($T -match "(Cherry\d\d)"){$T = $T -replace "(Cherry\d\d)(.+)",'$1.com$2'};$T } |  out-file  $outfile -Encoding "unicode"

答案 2 :(得分:0)

$array | %{if($_ -match "^Cherry\d\d"){$_ += ".com"};$_}