我想在带有自定义字符串的数据集中附加几个字符串。
示例
数据集内容:
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
仅追加到Cherry01
,Cherry02
和Cherry03
,并在追加.com
之后将其导出为CSV文件。
答案 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"};$_}