有什么方法可以根据日期搜索目录中的文件吗?我想查找创建日期大于特定日期的所有文件,是否可以使用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