Windows 查找具有相同前几个字符的文件

Windows 查找具有相同前几个字符的文件,windows,bash,shell,Windows,Bash,Shell,我正在试图找到一个windows shell命令,该命令允许我选择所有以相同3个字符开头的文件。例如,如果目录具有以下内容: 你好 000世界 111foo 121巴 该命令将为我获取前两个文件。有什么方法可以做到这一点吗?使用bash通配符 $ echo 000* Windows命令行,对吗 dir 000* *通配符是否与文件名中的任何字符匹配 ??通配符与文件名中的单个字符匹配 根据您的新信息: for /f %i in ('dir /b 000*') do ( echo %i

我正在试图找到一个windows shell命令,该命令允许我选择所有以相同3个字符开头的文件。例如,如果目录具有以下内容:

你好 000世界 111foo 121巴

该命令将为我获取前两个文件。有什么方法可以做到这一点吗?

使用bash通配符

$ echo 000*

Windows命令行,对吗

dir 000*
*通配符是否与文件名中的任何字符匹配

??通配符与文件名中的单个字符匹配

根据您的新信息:

for /f %i in ('dir /b 000*') do (
   echo %i is the name of the file we found
   type %i
)
如果您在批处理文件中,请使用%%i


这假定您希望保留在当前工作目录中。如果您想将目录树遍历到子目录,请查看使用for/r。

因为它被标记为Windows,所以不清楚需要什么类型的解决方案,但是如果可以使用Ruby,这可能会起作用

# create a hash of arrays where the hash value is the first three letters of the
# file name and the value is an array of those entries.
h = Hash.new{|h,k| h[k] = []}
Dir.foreach(".") { |f| h[f[0..2]] << f }

# then print/use the ones that have multiple entries
h.each_key { |k| puts h[k] if h[k].length > 1 }

他用bashshell脚本标记了他的问题,他一定在用Cygwin。“我同意这很让人困惑,”库尔泽德说,“是的。我也看到了。我也很困惑。问题是,我想选择所有有000的文件,做一些操作,然后如果存在其他文件名相同的文件,如111,对它们做同样的操作。。。等等所以我事先不知道目录里有什么。我只是逐个选择具有相同前缀的文件组,然后对它们执行一些操作。你在Windows中吗?bash是如何处理这个问题的?谢谢您的编辑,但我事先不知道存在前缀为000的文件。我只是举个例子。我想搜索一个目录,并找到任何匹配的文件具有相同的前缀,无论该前缀可能是什么。至于bash,我可能还需要在未来的linux中使用windows shell或bash?他们不一样。由于做您想做的事情的技术有很大的不同,您应该发布两个单独的、正确标记的问题。请添加cmd as tag/powershell as tag。glob是文档中使用的术语。