Windows 使用Dir命令,如何在与文件名相同的行上显示文件位置?

Windows 使用Dir命令,如何在与文件名相同的行上显示文件位置?,windows,batch-file,cmd,directory,Windows,Batch File,Cmd,Directory,当我试图在驱动器上查找文件时,我键入如下内容: dir /ogn /a /s | findstr /i the_file_im_looking_for 结果如下所示: dir /ogn /a /s | findstr /i the_file_im_looking_for 2019年1月1日上午9点15分3783这是文件\u im\u looking\u.txt 问题是,这并没有告诉我文件的位置 当然,如果没有findstr命令,文件的位置将用作该位置中文件列表的标题 是否有办法不仅按名称查找

当我试图在驱动器上查找文件时,我键入如下内容:

dir /ogn /a /s | findstr /i the_file_im_looking_for
结果如下所示:

dir /ogn /a /s | findstr /i the_file_im_looking_for
2019年1月1日上午9点15分3783这是文件\u im\u looking\u.txt

问题是,这并没有告诉我文件的位置

当然,如果没有
findstr
命令,文件的位置将用作该位置中文件列表的标题


是否有办法不仅按名称查找文件,而且按文件位置查找文件?

您应该能够使用以下方法来完成此操作:

  • /m
    引入要搜索的全局模式
  • /s
    使搜索递归到子目录
  • c
    引入为每个匹配文件运行的命令
  • @path
    替换为文件的完整路径
这将打印与glob模式匹配的所有文件和目录。正如注释中指出的,如果要将此限制为仅限于文件,可以向命令中添加一个条件:

forfiles /m *the_file_im_looking_for* /s /c "cmd /c if @isdir==FALSE echo @path"

您应该能够通过以下方式完成此操作:

  • /m
    引入要搜索的全局模式
  • /s
    使搜索递归到子目录
  • c
    引入为每个匹配文件运行的命令
  • @path
    替换为文件的完整路径
这将打印与glob模式匹配的所有文件和目录。正如注释中指出的,如果要将此限制为仅限于文件,可以向命令中添加一个条件:

forfiles /m *the_file_im_looking_for* /s /c "cmd /c if @isdir==FALSE echo @path"

您可以将
dir
for/f
循环结合使用,该循环将显示每个匹配文件的完整路径作为参数。当您从
Dir/?
读取输出时,是否注意到
/B
选项?我建议您添加它,并在选项
/A
中包含“not directory”,即
/A-d
。当然,您可以直接在
中使用
Dir
“the_file\u im\u looking\u for”
,同时在您选择的位置根目录,例如
Dir“C:\the_file\u im\u looking\u”/B/S/A-D/OGN
应返回在
C:
驱动器中找到的任何文件的完整路径位置。您可以将
dir
for/f
循环结合使用,该循环将显示每个匹配文件的完整路径作为参数。当您从
Dir/?
读取输出时,是否注意到
/B
选项?我建议您添加它,并在选项
/A
中包含“not directory”,即
/A-d
。当然,您可以直接在
中使用
Dir
“the_file\u im\u looking\u for”
,同时在您选择的位置根目录,例如
Dir“C:\the_file\u im\u looking\u”/B/S/A-D/OGN
应该返回
C:
驱动器中找到的任何文件的完整路径位置。这非常漂亮。非常感谢。那简直太美了。非常感谢。