我试图找到一个Windows shell命令,让我选择以相同的3个字符开头的所有文件。因此,例如,如果目录具有以下内容:
000hello 000world 111foo 121bar
命令会给我前两个文件。有没有办法做到这一点?
答案 0 :(得分:0)
使用bash通配符
$ echo 000*
答案 1 :(得分:0)
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
。
答案 2 :(得分:0)
由于它被标记为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 }