搜索指定的目录和项目的输出位置(如果找到)

时间:2014-04-05 07:54:21

标签: search batch-file for-loop

就像标题所说,我想知道如何在Windows批处理脚本中使用for循环在指定目录中搜​​索指定文件。我无法使用任何第三方软件。

这是我现在所拥有的:

for /R "%loc%" %%f in ("%searchterm%") do (
echo %%f
echo %%f>> "%genloc%wefound.txt"
)

%loc%是应该搜索的位置。

%searchterm%是脚本搜索的文件(例如" hello.txt")。

它必须在屏幕上输出找到的任何文件(包括它们的完整路径)并进入wefound.txt。

如果您需要更多详细信息,请与我们联系。

3 个答案:

答案 0 :(得分:1)

for /f "delims=" %%f in ('dir /s /b /a-d "%loc%\%searchterm%"') do (
    echo %%f
    echo %%f>> "%genloc%wefound.txt"
)

要使for /r命令以递归方式枚举起始点下的文件,文件集必须包含一些通配符(*?)。如您所知,确切的文件名,让dir命令执行搜索文件的工作。

答案 1 :(得分:0)

for /R "%loc%" %%f in ("%searchterm%") do (
   echo %%~Ff
   echo %%~Ff>> "%genloc%wefound.txt"
)

有关详细信息,请键入:FOR /?

答案 2 :(得分:0)

为什么用FOR复杂化?您只需要DIR命令:

dir /s /b /a-d "%loc%\%searchterm%>"%genloc%wefound.txt"&type "%genloc%wefound.txt"

如果您可以使用tee命令的Windows端口(有许多免费版本可用),解决方案会更好。你可以使用我的混合JScript/batch implementation of tee

dir /s /b /a-d "%loc%\%searchterm%"|tee "%genloc%wefound.txt"