我需要一些幫助來創建基於一堆子文件夾的輸出文件(或「報告」)。我想每晚給自己發電子郵件(我可以處理文件的電子郵件,只是不知道如何創建實際的文件)。在一組子目錄中修改最新文件的日期
我的數據結構:
- 主要含有工作目錄:
- 我bat文件從服務器3中的數據複製到下面
- TFX日誌文件夾
-
的TFX日誌文件夾
- 客戶端文件夾
- 長達15天的.log文件小號
- 客戶端文件夾
我想要做什麼:
- 複製從3個服務器TFX Log文件夾中的數據,保持結構(TFX登錄\ Client \ TFX _ *。log)(COMPLETED)
創建一首歌le .txt或.csv文件與每個客戶端文件夾中最新的TFX _ *。日誌文件列表(只是最新的 - 並非全部15個文件)。類似這樣的:
目錄名稱|文件名|修改日期
- 電子郵件文件,以我自己(竣工)
我只是需要與2號幫助。
這是我到目前爲止有:
:: Copying data
XCOPY "%source1%" "%destination%\TFX Logs\" /s /y
XCOPY "%source2%" "%destination%\TFX Logs\" /s /y
XCOPY "%source3%" "%destination%\TFX Logs\" /s /y
:: Deleting old output file before creating new one
DEL "%destination%\*.txt"
:: Creating new output file
powershell "& '%destination%\ListFiles.ps1'"
REN "%destination%\ImportReport.txt" ImportReport_%tday%.txt
我的PowerShell腳本看起來像這樣:
Get-ChildItem "..Daily Report\TFX Logs\" -recurse -file | Where{$_.LastWriteTime -gt (Get-Date).AddDays(-1)} | Out-File "..Daily Report\ImportReport.txt"
我得到現在的問題是這樣的:
(我只想從每個文件夾使用最新的文件克#2如果可能的話)
Directory: ..\TFX Logs\Client1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 4/22/2015 3:06 AM 329 TFX_db21_1522040304.log
Directory: ..\TFX Logs\Client2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 4/22/2015 12:22 AM 331 TFX_db4_1522040017.log
Directory: ..\TFX Logs\Client3
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 4/21/2015 8:03 PM 329 TFX_db4_1521042002.log
克利夫筆記上面指定的結構:
我想重新從PowerShell的輸出是:
目錄名稱(目錄)|文件名(名稱)| Last Modified Date(LastWriteTime)
沒有所有其他的東西和所有的空白。只是一個很好的逐行輸出。
此外,如果可能的話,如果有一個空白文件夾(或有一個文件夾的文件超過15天),仍然顯示在報告文件中,但沒有記錄。這樣我就知道了,嘿,這個客戶還沒有跑了一段時間,需要進行檢查。
UPDATE 15年4月29日
脫線以下的建議,表明希望,但是還沒有爲我工作。它什麼都不做。任何人有任何其他想法來改進我已有的東西?
嗨@Magoo,謝謝你的回覆。但是,您的腳本似乎沒有做任何事情。我替換了必要的變量(目的地等)。窗戶快速閃爍。我試着將TFX Log文件夾更改爲TFX Log2,看看它是否會創建一個新的目錄,但它沒有。這是與ECHO刪除。 – Ilya
有人嗎? @Magoo? – Ilya