14

カスタム文字列を含むデータ セットに複数の文字列を追加したいと考えています。

データセットの内容:

Test1
Test2
Test3

追加後の結果:

Test1.com
Test2.com
Test3.com

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

SQL テーブルから読み取り、次の方法で CSV にエクスポートされる DataSet に値を書き込みます。

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

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

Banana01
Banana02
Apple01
Cherry01
Cherry02
Cherry03

やりたいことは、、 、.comのみに追加し、 を追加した後、CSV ファイルとしてエクスポートします。Cherry01Cherry02Cherry03.com

4

3 に答える 3

21

多くの方法があります。ここにいくつかあります:

# 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' }
于 2012-07-25T12:22:46.927 に答える
9

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

例 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"
于 2012-07-25T12:00:24.657 に答える
0

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

于 2012-07-25T14:38:52.527 に答える