web-dev-qa-db-fra.com

Comment ajouter des chaînes à d'autres chaînes dans un ensemble de données?

Je souhaite ajouter plusieurs chaînes dans un ensemble de données avec des chaînes personnalisées.

Exemple

Contenu de l'ensemble de données:

Test1
Test2
Test3

Résultat après ajout:

Test1.com
Test2.com
Test3.com

Dois-je utiliser l'expression régulière pour analyser à la fin de chaque test [n] pour pouvoir l'ajouter avec une chaîne personnalisée (.com)? Quelqu'un at-il un exemple qui décrit exactement comment le faire?

Je lis à partir d'une table SQL et j'écris des valeurs dans un DataSet qui est exporté vers CSV de la manière suivante:

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

Le DataSet contient des chaînes telles que:

Banana01
Banana02
Apple01
Cherry01
Cherry02
Cherry03

La chose que je veux faire est d'ajouter .com à seulement Cherry01, Cherry02, et Cherry03, et après avoir ajouté .com, exportez-le sous forme de fichier CSV.

13
t1red

Il y a plusieurs façons. Voici quelques-uns:

# 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

Vous pouvez utiliser quelque chose comme ceci:

Exemple 1

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

Exemple 2

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

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

Avec votre code ajouté, je l'ai fait. Je n'ai pas de base de données pour le tester, j'ai donc fait le jeu de données manuellement, vous devrez peut-être simplement changer $ DataSet [0] dans mon code en $ 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