2017-09-10 6 views
-1

J'ai trois tableaux tels que Expéditeur, Destinataire et Sujet; J'ai besoin de les organiser sous forme de tableau comme ci-dessous.Comment organiser les valeurs de différents tableaux sous une forme tabulaire?

Sender    Recipient    Subject 
[email protected]  [email protected]   xxx 

Voici mon code

dir|ForEach-Object { 
    $Name=$_.Name 
    foreach ($N in $Name) { Import-Csv $N|` 
    Foreach { 
     $Sender+=$_.SenderAddress 
     $Recipient+=$_.RecipientAddress 
     $Subject+=$_.Subject 
    } 
    } 
} 

Quelqu'un peut-il examiner cette question?

Cordialement, Kiran

+0

s'il vous plaît ajouter la balise langage de programmation, et un échantillon de ce que vous avez essayé –

+0

Pouvez-vous nous donner un exemple de code de ces tableaux ? Comment pouvons-nous faire correspondre ces 3 tableaux ou sont-ils dans le bon ordre comme: $ Expéditeur [0], $ Destinataire [0], $ Sujet [0]? – SteloNLD

+0

PS C:. \ Users \ Public \ Documents \ Phishing> dir | ForEach-Object { Nom $ = $ _ Nom foreach (N $ dans le nom $) { Import-Csv $ N | ' Foreach { $ expéditeur + = $ _. SenderAddress $ bénéficiaire + = $ _. RecipientAddress $ Sujet + = $ _. Objet } } } – LittleBuddha

Répondre

2

Si vous avez plusieurs tableaux parfaitement alignés, vous pouvez facilement les zip avec une boucle for:

$Sender = @('[email protected]','[email protected]') 
$Recipient = @('[email protected]','[email protected]') 
$Subject = @('Overdue invoices','Receipts') 

$mailObjects = for($i = 0; $i -lt $Sender.Count; $i++){ 
    New-Object psobject -Property @{ 
     Sender = $Sender[$i] 
     Recipient = $Recipient[$i] 
     Subject = $Subject[$i] 
    } 
} 

vous pouvez utiliser Format-Table:

PS C:\> $mailObjects |Format-Table 
Sender    Recipient    Subject 
------    ---------    ------- 
[email protected] [email protected] Overdue invoices 
[email protected] [email protected] Receipts 
+0

Importer | ForEach-Object { Search-Mailbox -identité "$ _. DestinataireAddress" -Requête de recherche "De: $ _. SenderAddress", "Objet: $ _. Sujet "-targetmailbox" XXXXX "-targetfolder" Test "-deletecontent -Force -loglevel full -QueIf } – LittleBuddha

+0

Maintenant, j'ai un autre problème; Le script ci-dessus ne fonctionne pas; L'importation est une fonction que j'ai créée pour importer un fichier CSV. Il fonctionne mais me donne l'erreur ci-dessous. – LittleBuddha

+0

@LittleBuddha S'il vous plaît décrire le problème que vous essayez de résoudre. Ne ressemble pas à la mise en forme de la sortie est votre problème réel –

0

Si j'interprète correctement votre code, vous faites référence à des colonnes de fichiers csv et non à des tableaux. Une sélection des propriétés souhaitées devrait suffire après l'importation, les nouveaux noms de propriété plus courts pourraient être obtenus avec un [pscustomobject].

Supposons que nous ayons:

> Get-Content first.csv 
"othercol","SenderAddress","RecipientAddress","Subject" 
"","[email protected]","[email protected]","Overdue invoices" 
"","[email protected]","[email protected]","Receipts" 

et:

>Get-Content second.csv: 
"SenderAddress","RecipientAddress","Subject","othercol" 
"[email protected]","[email protected]","Overdue deliveries","xyz" 
"[email protected]","[email protected]","Orders","abc" 

Celui-liner:

foreach ($File in (gci *.csv)){Import-Csv $File|Select SenderAddress,Recipientaddress,Subject} 

va afficher:

SenderAddress  RecipientAddress  Subject 
-------------  ----------------  ------- 
[email protected] [email protected] Overdue invoices 
[email protected] [email protected] Receipts 
[email protected] [email protected] Overdue deliveries 
[email protected] [email protected] Orders 

Cette version plus détaillée:

ForEach ($File in (Get-ChildItem *.csv)){ 
    Import-Csv $File | Select-Object SenderAddress,Recipientaddress,Subject | 
     ForEach-Object{[pscustomobject] @{Sender = $_.SenderAddress 
              Recipient = $_.Recipientaddress 
              Subject = $_.Subject} 
     } 
} 

cède cette sortie:

Sender    Recipient    Subject 
------    ---------    ------- 
[email protected] [email protected] Overdue invoices 
[email protected] [email protected] Receipts 
[email protected] [email protected] Overdue deliveries 
[email protected] [email protected] Orders