在 Windows XP 上从命令行搜索文件的最简单方法是什么?
我想要查找自某个日期以来创建的文件、大于某个大小的文件、或在某个驱动器上的文件。
理想情况下,我希望能够将带有参数的命令保存在文本文件中,以便定期重新运行。
答案1
这能使用命令提示符中的内置工具即可完成,尽管最终你会得到脚本而不是简单的命令。为了使用简单的命令行方法查找符合特定条件的文件,我会安装电源外壳。
以下有些例子可供您参考:
查找当前目录中自某个日期以来创建的文件:
C:\>Get-ChildItem | Where-Object{$_.CreationTime -gt "28/12/2009 8:00:00 PM"} 目录:Microsoft.PowerShell.Core\FileSystem::C:\ 模式 LastWriteTime 长度 名称 ---- ------------- ------ ---- -a--- 2009 年 12 月 28 日下午 3:56 0 newfile.txt
在当前目录中查找大于一定大小的文本文件(以字节为单位):
C:\> 获取 ChildItem | Where-Object{$_.length -gt 16000} 目录:Microsoft.PowerShell.Core\FileSystem::C:\ 模式 LastWriteTime 长度 名称 ---- ------------- ------ ---- -a--- 21/12/2009 7:02 PM 16504 svc.txt
查找不同驱动器上的所有 mp3 文件:
C:\> Get-ChildItem D:\ -include *.mp3 -Recurse -Force 目录:Microsoft.PowerShell.Core\FileSystem::D:\ 模式 LastWriteTime 长度 名称 ---- ------------- ------ ---- -a--- 12/03/2009 4:01 PM 4418246 eric clapton - 天堂里的泪水.mp3 -a--- 22/05/2009 2:24 AM 7714143 led zeppelin - stairway to heaven.mp3 -a--- 13/06/2009 2:39 AM 5507148 pearl jam - black.mp3 -a--- 13/06/2009 2:39 AM 3042452 pearl jam - last kiss.mp3 -a--- 31/12/2008 5:43 AM 3216613 rush - fly by night.mp3 -a--- 31/12/2008 6:37 AM 4267363 Rush - Limelight.mp3 -a--- 31/12/2008 6:02 AM 4224300 rush - yyz.mp3 -a--- 07/12/2008 2:05 AM 2827218 rush - 更接近心脏.mp3 -a--- 19/05/2009 5:21 AM 5842779 styx - 扬帆起航.mp3
不过,出于好奇,为什么不能使用 Windows Search?它可以通过 GUI 轻松完成您需要的一切。
答案2
好吧,如果我们提到非默认脚本语言,我会使用免费软件交通部/LE. 所有命令都支持日期/大小范围。
我想要查找自某个日期以来创建的文件、大于某个大小的文件、或在某个驱动器上的文件。
查找7天内的所有文件:
dir /sf /[d-7]
查找自 2009 年 10 月 30 日以来的所有文件:
dir /sf /[d2009-10-30]
要查找大于 57,000 字节的文件:
dir /sf /[s57000]
要查找小于 57,000 字节的文件:
dir /sf /[s0,57000]
至于将命令保存在文本文件中,您可以设置别名来执行相同的操作,即。
alias today=dir /sf /[d0]
alias week=dir /sf /[d-7]
答案3
个人偏好是直接获取移植到 Windows 的 unix find 命令副本。65k EXE 文件,在过去的 20 年里,我还没有遇到过它无法根据各种开关和选项找到的东西。然后添加对找到的任何文件采取行动的选项,非常有用。这里要列出的例子太多了,但请查看
http://linux.about.com/od/commands/l/blcmdl1_find.htm
和
http://content.hccfl.edu/pollock/unix/findcmd.htm
它可以在以下 zip 文件中找到:http://sourceforge.net/projects/unxutils/