web-dev-qa-db-ja.com

データセット内の他の文字列に文字列を追加する方法は?

カスタム文字列を使用して、データセットに複数の文字列を追加したい。

データセットのコンテンツ:

Test1
Test2
Test3

追加後の結果:

Test1.com
Test2.com
Test3.com

カスタム文字列(.com)を追加するには、正規表現を使用して各Test [n]の最後まで解析する必要がありますか?誰もそれを行う方法を正確に説明する例を持っていますか?

私は、SQLテーブルからデータを読み取り、CSVにエクスポートされるDataSetに値を書き込みます。

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

DataSetには、次のような文字列が含まれます。

Banana01
Banana02
Apple01
Cherry01
Cherry02
Cherry03

私がやりたいのは、.comCherry01Cherry02、およびCherry03のみに追加し、.comを追加した後、CSVファイルとしてエクスポートすることです。

13
t1red

多くの方法があります。以下にいくつかを示します。

# 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' }
19
Shay Levy

次のようなものを使用できます。

例1

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

例2

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

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

追加したコードでこれを行いました。テストするデータベースがないため、データセットを手動で作成したため、コードの$ DataSet [0]$ DataSet .Tables [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"
9
justinf

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

0
SpellingD