我有一個PowerShell腳本,幾乎可以做我想做的事。在2個CSV文件中計數行進行比較
基本上有CSV文件提要寫入特定的位置並按年份和月存儲。我必須比較兩個最新的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'.
我知道爲什麼我得到這個錯誤 - 它試圖將兩個文件名加入到一個路徑中。但是,我不知如何解決這個問題。我想循環可能是必需的,但我不知道在哪裏。
哪兩個文件?只是目錄中的前兩個,按LastAccessTime排序? – Spikeh
是的。目錄中的兩個最新的。該目錄將根據月份和年份而變化。 – Ricky
你有兩個結果......所以將它們管理到一個foreach語句......在那裏,在你調用這些對象的任何地方執行CSVcount,或者如果你沒有給它們命名,則執行$ __。看看powershell foreach statments –