web-dev-qa-db-fra.com

Suppression de la ligne de commande powershell

J'ai un problème avec un saut de ligne dans mes données. Le tableau a été créé avec une chaîne sortante suivie de -split. Si vous voulez voir cette partie du script, faites-le-moi savoir.

foreach ($item in $array) {
"_"+$item+"_"
}

Sortie:

_
itemname_

Sortie désirée:

itemname

J'ai essayé d'insérer:

$item.replace('`','')

Sans aucun changement. Des idées?

8
snoop

Ok, je pense que ça devrait marcher. J'avais l'impression que vous vouliez ces soulignés dans le résultat.

$array -replace "`n|`r"
10
mjolinor

Eh bien, que diriez-vous d’appliquer le code de mjolinor au niveau de l’article $, par exemple: 

foreach ($item in $array) {
  $item -replace '^|$','_'
}

Bien que j'attende le même résultat que vous obtenez déjà, il y a des nouvelles lignes intégrées dans votre chaîne.

Je ne suis pas capable d'installer la même condition dans $ array moi-même, vous pourriez peut-être poster ce code.

Est-ce que ça marche?:

foreach ($item in $array) {
  $item.Trim() -replace '^|$','_'
}
0
Arluin

Par défaut, la commande 'Get-Content' contient le délimiteur par défaut d'une nouvelle ligne '\ n'. Créez un paramètre de costume, puis exécutez votre commande de remplacement. J'espère que cela t'aides. 

Get-ChildItem | Get-Content -Delimiter "~" | foreach { $_ -replace "`r|`n","" }
0
PapaJim10