これは簡単な答えのようですが、私の人生にとっては理解できません。私がやろうとしているのは、テキストファイルからたくさんのメールアドレスを取り出し、@を過ぎたメールの一部を取り除くことです(例えば、メールアドレスが[email protected]の場合、私はadamビットに興味があります)。Powershellはループの出力を配列に移動します
以下のスクリプトは、私が望む値を出力しますが、出力をコンソールではなくアレイに書きたいと思っています。これを行う最善の方法は何でしょうか?
下記のコード。
# Import the text file into a variable
$import = Get-Content c:\\temp\test.txt
# Variable to hold total number of emails
$totalEmails = $import.Count
#Variable to run loop
$start = 0
#Used as a separator to look at the first part of the email address
$separator = "@"
# Will increment by two to show the first part of the array in parts which holds the text before the @
$even = 0
# Username after @
$userName
#Strip out the text before the @
do {
$parts = $import.split($separator)
$even+=2
# This line here is whats not working, I would like to have the output of each echo written into the array $userName
$userName = echo $parts[$even]
$start++
} while ($totalEmails -gt $start)
これはあなたのスクリプト全体を置き換えます: '$ array = Get-Content" C:/temp/test.txt "| %{$ _ |分割文字列 - セパレータ "@" | Select First-1} '[about_Pipelines]をご覧ください(https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-5.1) – Clijsters
こんにちは、 お返事をありがとうございます!私はこれを実行しようとしましたが、Split-String文にエラーがありますか? –
本当ですか?エラーは何ですか? – Clijsters