ほとんどのPowerShellスクリプトがあります。比較のために2つのCSVファイルの行数を計算する
基本的に、特定の場所に書き込まれ、年および月ごとに保存されるCSVファイルフィードがあります。大規模な不一致が問題を示しているので、2つの最新のCSVファイル間の行数を比較する必要があります。
現在のところ、私のスクリプトは最新のCSVファイルを取り出して問題なく行数を返しますが、2つの最新ファイルの行数を返す方法を見つけることはできません。それが原因私は、スクリプトを構造化しまし方法に思われる:
$datemonth = (Get-Date).Month
$dateyear = (Get-Date).Year
## get latest csv files
$dir = "\\160.1.1.98\c$\Scheduled Task Software\ScheduledTask\Application Files\ScheduledTask_1_0_0_9\Files\$dateyear\$datemonth\SentFeedFiles"
$latest = Get-ChildItem -Path $dir |
Sort-Object LastAccessTime -Descending |
Select-Object -First 1
## get path to csv files, add headers and count number of rows.
$filepath = $dir + '\' + $latest
$CSVCOUNT = (Import-Csv $filepath -Header 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28).Count
私は-First 2
に変更すると、私は次のエラーを取得する:
Import-Csv : Could not find file '\16.1.1.18\c$\Scheduled Task Software\ScheduledTask\Application Files\ScheduledTask_1_0_0_9\Files\2017\3\SentFeedFiles\lkrlkr200317.csv lkrlkr19017.csv'.
私はこのエラーを取得していますなぜ私が知っています - 2つのファイル名を1つのパスに結合しようとしています。しかし、私はこれを回避する方法を失っています。私はループが必要かもしれないと思っていますが、私はどこにいるのかわかりません。
2つのファイルはどちらですか? LastAccessTimeで注文されたディレクトリの最初の2つだけ? – Spikeh
はい。ディレクトリ内の2つの最新のもの。ディレクトリは月と年によって変わります。 – Ricky
あなたは2つの結果を持っています。そのため、foreach文にパイプしてください...そこにある間は、それらのオブジェクトと呼ぶものにCSVcountを実行するか、名前を付けない場合は$ _を実行します。 powershell foreach文章を参照してください –