2017-05-25 6 views
2
$readFile = get-content $readInput 

#create an empty array to be filled with bank account numbers 
$fNameArray = @() 

for($i = 0; $i -lt $readFile.length; $i++){ 

    #assigns a random letter from the list to $letter. 
    #$letter = get-random -inputobject ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") -count $readFile.length 
    $letter = $readFile[$i] | foreach-object{get-random -inputobject ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") -count $readFile[$i].length} 

    $fnameArray += "$letter" 
} 
$fnameArray 

le code lit dans un fichier qui a une liste de noms et de randomiser les lettres pour le masquage des données. Le seul problème que je courais en est la sortie est comme tel:Comment dow je stringifier un tableau sans espaces entre ses éléments?

L R Y E B 
R O M I 
U Q N G R 
H K Y 
M G A W Q 
J G W Y D K T 
X E Q 
J Y P I G 

On dirait qu'il est sorti avec des espaces entre les lettres. Comment puis-je les éliminer?

+0

La manière la plus simple serait de faire '$ fnameArray' dans une chaîne au lieu d'un tableau. – Eris

+0

'PSAN FV QS NA PSH MF R GV JEM IB TYRSZ ME A FK HXTS' Ceci est la sortie de' $ fNameArray = "" ' – schnipdip

+0

@Eris: Cela ne va pas aider, car il est la stringification de tableau' $ lettre 'as' "$ letter" 'qui introduit les espaces. – mklement0

Répondre

1

La forme unaire de l'opérateur -join joint (concatène) tous les éléments du tableau sans séparateur.

> -join ('a', 'b', 'c') 
abc 

Par conséquent, il suffit d'utiliser:

$fnameArray += -join $letter 

En revanche, "$letter" stringifies le tableau en utilisant $OFS (le séparateur de champ de sortie) comme séparateur, qui par défaut est un espace , qui explique votre sortie. Par conséquent, vous pouvez également définir $OFS à '' (la chaîne vide) et utiliser "$letter". Cependant, l'approche -join est plus simple et ne nécessite pas de créer une portée locale pour/restaurer la valeur précédente $OFS.

+0

@schnipdip: J'ai compris; Merci d'accepter. – mklement0