有什麼方法可以根據日期搜索目錄中的文件嗎?我想查找創建日期大於特定日期的所有文件,是否可以使用dir
命令執行此操作?使用命令行按日期搜索
回答
dir
本身不能按日期進行篩選,但您可以使用for
命令解析dir
的輸出。如果您的國家dir
以YMD格式打印日期,那麼您只需要將其與給定日期進行比較。如果日期部分的順序不同,則必須使用另一個for
命令來解析日期並將其更改爲YMD。這將顯示第5版之後修改的文件列表。
@Echo Off
for /f "usebackq tokens=1,4 skip=5" %%A in (`dir /-c`) do (
if %%A GTR 2012-02-05 echo %%A %%B
)
if
不標準的字符串比較,所以在最後,如果摘要行通過比較,你可以得到額外的線。爲了避免它,你可以使用if %%A GTR 2012-02-05 if exist %%B echo %%A %%B
編輯: 有更好的方法避免了dir
解析輸出,還允許通過一次搜索,不僅日期:
@Echo Off
for /r %%A in (*) do (
if "%%~tA" GTR "2012-02-05 00:00" echo %%~tA %%A
)
那麼你不能因爲據我所知,但這種思考的工作,但還是很沒用的,除非你有一個簡短的日期範圍;)
for /R %a in (01 02 03 04 05) do dir | find "02/%a/2012"
不錯!使用'dir/tc'來處理創建日期。 – Marc 2016-08-12 09:49:05
剛剛發現forfiles
命令。
forfiles /s /m *.log /d -7 /c "cmd /c echo @path"
將列出所有修改超過七天的日誌文件,在所有子目錄,但它似乎並沒有看創建日期。它確實支持指定一個特定的日期。
有關更多信息,請參閱forfiles /?
。
超級有用! (當沒有PowerShell可用時)注意:如果你想在一個日期之後修改文件,你需要用'+'而不是'-'作爲'/ d'參數,所以'+ 02/05/2012'而不是'-7 '。還要顯示每個文件的日期和時間輸出,你可以使用'cmd/c echo @fdate @ftime @ path' – bob 2013-07-10 14:58:06
+1這應該是被接受的答案 – 2014-02-19 01:07:22
警告:有些人希望使用UNC路徑。或在Windows中的許多其他地方... – 2016-06-21 16:06:18
這很容易與PowerShell做。我知道你的問題是關於cmd的,但PS包含在Windows 7和更高版本中。它也可以安裝在XP和Vista上。
使用Get-ChildItem
命令(別名爲dir
)獲取所有文件。將輸出傳輸到Where-Object
命令(別名爲?
)以返回日期大於(-gt
)特定日期的文件。
對於PowerShell 2.0中(在Windows 7默認的),你必須使用一個腳本塊:
dir -file | ? {$_.LastWriteTimeUtc -gt ([datetime]"2013-05-01")}
對於Powershell的3.0(在Windows 8默認)和高達你可以改用這種簡單的語法:
dir -file | ? LastWriteTimeUtc -gt ([datetime]"2013-05-01")
dir -file
命令返回一個System.IO.FileInfo
對象的集合。此文件對象具有許多可用於複雜過濾的屬性(文件大小,創建日期等)。有關文檔,請參閱MSDN。
我試過了:dir。 * .svg | ? LastWriteTimeUtc -gt([datetime]「2013-05-01」)但收到「Where-Object:無法綁定參數'FilterScript'。無法將類型爲」System.String 「的」LastWriteTimeUtc「值轉換爲鍵入」System.Management .Automation.ScriptBlock「。 – 2014-10-01 11:23:53
我使用的語法適用於PS 3.0以上,我相信如果你有PS 1.0或2.0,你必須使用如下的scriptblock:'|?{$ _。LastWriteTimeUtc -gt([datetime] 「2013-05-01」)}' – bouvierr 2014-10-01 11:37:44
啊我在Windows 7上用PS 2.謝謝 – 2014-10-01 16:56:09
對我來說更簡單的方法是一樣的東西
dir /s *.xlsx | find "07/14/2016"
- 1. 搜索按日期coredata
- 2. 按日期搜索範圍
- 3. mysql表按日期搜索
- 4. SQL命令按日期
- 5. 搜索從命令行
- 6. 從命令行搜索cpan.org
- 7. 帶有日期過濾器的IMAP搜索命令
- 8. Unix搜索命令
- 9. Grep命令搜索
- 10. 少命令搜索
- 11. 按日期SQL服務器搜索2005
- 12. 如何在PGSQL中按日期搜索?
- 13. SQL,按日期搜索,不存在
- 14. wordpress按日期排序搜索結果
- 15. 按日期搜索Mysql查詢
- 16. 在DBIx上按日期搜索::類
- 17. Bing Azure API按日期範圍搜索
- 18. 必應搜索API:按日期縮小
- 19. Shell命令日期
- 20. 按日期JIRA JQL搜索 - 如何搜索1小時
- 21. 使用之前的日期搜索
- 22. 使用關鍵字來搜索日期
- 23. GAE搜索查詢使用日期?
- 24. 使用cat命令的日期格式
- 25. 使用sed命令插入日期
- 26. 比較時間使用日期命令
- 27. 如何使用Java在MongoDB 3.3中按日期搜索文檔
- 28. 如何按日期和日期搜索模型
- 29. Python中的命令行搜索路徑
- 30. Github問題在命令行中搜索
'DIR/OD'會按日期排序,至少 – nolegs 2012-02-10 20:17:50
目錄不能,但Unix的find命令*可*。 [Dos port available here](http://sourceforge.net/projects/unxutils/) – 2012-02-10 21:59:06
http://superuser.com/a/326025/3588在SuperUser是一個優雅的解決方案,使用'xcopy'而不需要實際複製 – 2015-09-01 23:50:26