为什么findstr还搜索指定目录之外的文件?

时间:2016-01-13 04:36:44

标签: windows batch-file windows-7 findstr

我在Windows 7上无法理解 findstr 的简单行为。

我在管理员模式下运行批处理文件(如果没有,它们根本不启动),并在以下几个不同位置使用以下脚本:

@echo off
set local=%~dp0
echo %local%
REM to check that I am where I think I am
findstr /s /i /c:"stringtofind" %local%*.ext

当我从"C:\Program files\~""C:\Program files (x86)\~"中的某个位置运行此脚本时,输出包括%local%目录之外的.ext文件和"stringtofind"的子目录。实际上所有匹配的文件都在硬盘上。

此行为不会出现在我可以测试的每个其他位置(基本上在C:\目录中的任何其他位置),其中只显示目录和子目录中的匹配文件。

Program files目录是否有特定的内容?

1 个答案:

答案 0 :(得分:1)

尝试更改为

findstr /s /i /c:"stringtofind" "%local%*.ext"

在您提到的情况下,directoryname包含空格,因此findstr正在查找多个参数。 "使用引号" groups"包含空格的字符串"成一个字符串。