为什么 findstr 也在指定目录外的文件中搜索?
Why does findstr also search in files outside specified directory?
findstr 有一个简单的行为,我在 Windows 7 上不明白。
我 运行 管理员模式下的批处理文件(如果不是,它们根本不会启动),在几个不同的位置使用以下脚本:
@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
目录的内容?
试试改成
findstr /s /i /c:"stringtofind" "%local%*.ext"
在您提到的情况下,目录名包含空格,因此 findstr
正在查找多个参数。 "Using the quotes" 将 "strings containing spaces" 组为一个字符串。
findstr 有一个简单的行为,我在 Windows 7 上不明白。
我 运行 管理员模式下的批处理文件(如果不是,它们根本不会启动),在几个不同的位置使用以下脚本:
@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
目录的内容?
试试改成
findstr /s /i /c:"stringtofind" "%local%*.ext"
在您提到的情况下,目录名包含空格,因此 findstr
正在查找多个参数。 "Using the quotes" 将 "strings containing spaces" 组为一个字符串。