2014-08-29 29 views
1

我在其中包含內容的目錄中有許多文件夾。如何快速查看它們何時被修改?我的文件夾列表很大,所以我想以編程方式執行此操作。但希望以文本格式獲得結果。如果需要,我可以從cmd複製和粘貼。還有最後一次輸入文件夾的時候(比如touch什麼的)?快速查看在窗口中修改了多個文件夾的內容

所以我想看到的文件夾名稱,修改日期,最近一次是進入該文件夾,例如:

file1 modified-date touch-date 
file2 modified-date touch-date 
file3 modified-date touch-date 
. 
. 

是否有一個Windows命令行命令或其他本機Windows方法可以輕鬆地做到這一點?

+0

你是什麼意思的「看到」?這是你想要從代碼,或使用Windows,打字和點擊的東西? – 2014-08-29 18:52:34

+0

我的文件夾列表很大,所以我想以編程方式執行此操作。但希望以文本格式獲得結果。如有必要,我可以從CMD複製和粘貼。 – brno792 2014-08-29 18:56:00

+1

你對寫Powershell感到滿意嗎? – rrirower 2014-08-29 19:16:43

回答

0

如果您在命令行或搜索框中鍵入powershell進入powershell。

對於由修改日期

Get-ChildItem c:\ | Sort-Object LastWriteTime | Select-Object Name, 
LastWriteTime, LastAccessTime 

分揀通過訪問日期

Get-ChildItem c:\ | Sort-Object LastAccessTime | Select-Object Name, 
LastWriteTime, LastAccessTime 

排序你還可以用結束後以下發送任何一個文件。用你自己的替換路徑和文件。

>> c:\path\file.text 

只要確保編寫以管理員身份運行PowerShell的文件即可。

CreationDate是對象列表或排序依據的另一種選擇。

您還可以在排序對象對象之後使用-descending或 - ascending以不同順序排序,默認情況下升序。

另外,如果你只想文件夾包括其中右後一開始childItem像這樣

Get-ChildItem C:\ | where {$_.PsIsContainer} | Sort-Object LastAccessTime | 
Select-Object Name, LastWriteTime, LastAccessTime 
0

首先一個警告:

由於Vista的默認設置爲NTFS文件系統(冗餘FS是冗餘的)是由於性能原因不更新上次訪問時間(對每次讀取添加寫入)。您可以通過在提示提示下發出以下命令來更改它:fsutil behavior set DisableLastAccess 0

使用純DOS命令在批處理文件:

@echo off 
for /f "usebackq tokens=*" %%i in (`dir /ad /s /b`) do (
    for /f "usebackq tokens=1-3" %%j in (`dir /ad /ta "%%i" ^| find "<DIR>" ^| find " ." ^| find /v ".."`) do echo %%j %%k %%l %%i 
) 

不是排序的日期格式理所當然,但它會給你所有的目錄和上次訪問的時間戳(這是/ta做什麼)。回波線中的%%l%%i之間有一個製表符。

細分:獲取所有目錄/ad遞歸/s只顯示路徑/b。對於每個這樣的行,獲取上次訪問時間戳/ta的目錄內容。我們只想要<DIR>這行就是當前目錄(單點)。必須有點複雜,以避免父母..條目,但這是批量給你。

你可以重新格式化成日期YYYY-MM-DD格式用於此排序,而不是上面的回波:

... do (set x=%%j & echo %x:~6,4%-%x:~0,2%-%x:~3,2% %%k %%l %%i) 

即假定爲mm/dd/yyyy的原始日期當然格式;根據您的需要修改012'slice'n'dice。不包括時間,因爲DIR命令返回一個AM/PM值而不是24小時,我們需要使用子程序調用來完成那麼多的邏輯。

+0

我不確定'/ ta'是否按預期工作。在Windows 8中,我使用'dir/ta'和一個文件夾顯示'13:45' - 在CD到文件夾並從文件夾中退出後仍然顯示'13:45'(這是一小時前)。 – foxidrive 2014-08-31 04:36:37

+0

由於Vista,NTFS文件系統的默認設置(冗餘FS是冗餘的)不會因爲性能原因而更新。您可以通過在提示提示下發出以下命令來更改它: 'fsutil行爲設置DisableLastAccess 0' – Torqane 2014-09-01 05:56:49

+0

感謝您的信息。在你的回答之前,你應該清楚地注意到 - 保存某人在默認系統上嘗試它,並想知道爲什麼它不起作用。 – foxidrive 2014-09-01 06:35:22

相關問題