カスタム文字列を使用して、データセットに複数の文字列を追加したい。
例
データセットのコンテンツ:
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
私がやりたいのは、.com
をCherry01
、Cherry02
、およびCherry03
のみに追加し、.com
を追加した後、CSVファイルとしてエクスポートすることです。
多くの方法があります。以下にいくつかを示します。
# 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
$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"
$array | %{if($_ -match "^Cherry\d\d"){$_ += ".com"};$_}