2017-07-06 71 views
-1

拉我的頭髮在這條線上。 我能想到的唯一的事情就是格式化問題。無法獲取PowerShell通過檢查文件夾來查找在過去一小時修改的文件

的foreach(在$文件(GET-ChildItem $ CompanyDir)){

檢查文件是否已在過去一小時

if ($file.LastWriteTime -ge [datetime]::Now.AddMinutes(-60)) 

這似乎有它自己 的心靈被修改有時候它在其他時間不起作用 我每次嘗試時都會得到不同的結果 基本上它會搜索整個文件夾,如果在上個小時中有修改過的文件,它會壓縮整個文件夾。 它似乎現在壓縮,即使沒有文件在過去的小時 今天早些時候修改它不是壓縮,但如果我把分鐘移動到像6000這樣荒謬的事情,它會壓縮 我知道這是正確的,因爲當我把它變成一個變量並輸出它,這是一小時之前的一小時 ($ file.LastWriteTime -ge [datetime] :: Now.AddMinutes(-60))

它以前根本不工作。我將文件夾結構移動到另一個驅動器,並開始工作。不知道爲什麼會這樣,因爲文件夾應該具有相同的屬性,而不管它們的位置。 我可以在這方面做得很好,但我現在沒有想法,所以任何輸入都會有很大的幫助。

感謝

回答

0

它還挺很難說什麼是從你這裏張貼的小位怎麼回事,不過... 你能更明確的關於每個$文件是什麼,你可能會得到的東西,你'不感興趣。
你的意思是它通過潛艇遞歸? 你想檢查文件的每一種方式,或只是「真實」的文件?

Get-ChildItem [[-Filter]] [-Attributes {ReadOnly |隱藏|系統| 目錄|存檔|設備|正常|臨時| SparseFile | ReparsePoint |壓縮|離線| NotContentIndexed |加密| IntegrityStream | NoScrubData}]

+0

我想檢查文件夾結構中的每個文件,如果在文件夾中修改了一個文件,則退出該語句並繼續。我有這個工作,因爲我知道它繼續。我不明白的是爲什麼我得到不同的結果運行腳本。這很奇怪。 – MavCoder

+0

我想你也在檢查目錄,可能還有設備。我建議你將get-childitem的結果過濾到普通文件。也許我沒有足夠明確地暗示。例如,您可能還想記錄活動 - 輸出觸發壓縮的文件的名稱。 –

+0

謝謝丹尼斯。我會很快嘗試。感謝你的幫助。 – MavCoder

相關問題