私はPowerShellとプログラミング全般で新しくなっています。問題を説明する前に、まず背景情報を教えてください。PowerShell ForEachは先行ゼロを削除します
私はすべてのトランザクションを$トランザクションに保存しました。各取引はレシーバ,日付および金額です。私は$ TransactionsPerYearに次のように毎年の取引をグループ化している
:
$TransactionsPerYear = $Transactions | Group-Object { [int]($_.date -replace '.*\.') }
(ところで、誰かが各文字が何をするか、私のために最終的に正規表現を説明してもらえます。?)
次の事私は毎年の収入と経費を別々の変数にグループ化しています。この後、私は毎年の月を抽出し、$ Monthsに保存しようとしています。日付は、次の形式のDD.MM.YYYYである
質問1:
ここで私はすべての日付を取得する方法ですが、どのように私はちょうどヶ月が抽出できますか?
$TransactionsPerYear | Select -ExpandProperty Group | Select -ExpandProperty date | Select -Unique
質問2:私は毎月持っている場合
[String[]]$Months = "01","02","03","04","05","06","07","08","09","10","11","12"
:
私は数ヶ月を抽出する方法がわからないので、私はそれを次の方法を試してみました$ Months月々のトランザクションを取得して新しい変数に保存しようとしています:
ForEach($Month in $Months){
New-Variable -Name "Transactions_$Month$Year" -Value ($Transactions | Where {$_.Date -like "*.$Month.$Year"} | Group-Object 'Receiver' | Select-Object Count, Name, @{L="Total";E={$_ | Select -ExpandProperty Group | Measure-Object Amount -Sum | Select -ExpandProperty Sum}} | Sort-Object {[double]$_.Total})
}
私はここに直面しています
問題は、foreachのは、各月から先行ゼロを除去し、そしてこの問題が発生したときに、foreachの中にこの部分は何と一致していない、と新しい変数がNULLであることである:
Where {$_.Date -like "*.$Month.$Year"}
レッツ私はあなたがもっと情報を必要とするかどうか知っています誰かが私を助けることができれば本当に感謝しています。
日は次のようになります。あなたのポストから2016年2月25日
日付の表示方法を教えてください。 "dd.MM.yyyy"または "MM/dd/yyyy"など – pandemic
今投稿の最後に追加しました。 – TimoY
私はあなたのコードとその正常な動作をテストしました。変数 '$ Year'を指定しましたか? – pandemic