【问题标题】:Search for file that has specific string in name搜索名称中包含特定字符串的文件
【发布时间】:2020-04-10 16:02:31
【问题描述】:

我正在尝试使用 .bat 文件搜索具有我定义的特定字符串的文件。我发现它可能可以用 Findstr 完成,但我是批量初学者,所以我无法为此制作正确的脚本。

我现在只有这个

@echo off
echo Select path to first folder
set /p first_path=

所以用户设置了搜索的文件夹。

【问题讨论】:

  • dir /s /a:-d /b "*New Text*" 呢?
  • 有很多方法可以执行您需要的任务,但是,一旦找到文件,我就不愿意提供其中一种,因为不知道您到底打算做什么,如果确实,则找到。如果您在选择最合适或最有效的解决方案之前稍微扩展一下任务,可能会更好。 然而,目前提供的答案都没有接近上述评论中的效率,(尽管如果你知道的话,我建议你也包括文件扩展名)

标签: windows batch-file


【解决方案1】:

您可以使用dir 列出所有文件并将其通过管道传输到findstr

dir | findstr string*

重要提示:仅在末尾使用通配符。我在开始时尝试使用它,但它没有用 - 但在最后使用它就像你在开始时使用它一样。也许其他人会插话为什么会发生这种情况。

虽然这不会只为您提供文件名,但它会找到您正在搜索的文件名。

注意:这还将在dir 输出的“日期”和“时间”部分中搜索您的字符串。

【讨论】:

  • 它可能失败了,因为您需要在要搜索的内容周围加上引号
  • 我尝试添加引号,结果是一样的 - 你可能想在评论之前测试你的建议......
  • findstr 搜索字符串中的* 不是通配符,它​​是匹配“零次或多次出现的前一个字符或类”的元字符 (见findstr /?)...
【解决方案2】:

你可以用这个:

dir /B /S | findstr "string"

开关/B 完整显示文件名(在开头添加目录名)。
开关/S 遍历所有子目录(我相信这就是您要找的吗?)。

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多