【发布时间】:2014-07-01 19:09:35
【问题描述】:
我有以下代码用于在子目录中搜索 2 个 exe 文件:
@echo off & setLocal EnableDELAYedeXpansion
for %%d in (c) do if exist %%d: (
for /f "delims=" %%a in ('dir/b/s/x %%d:\autolog.exe %%d:\autorun.exe 2^>nul ^| findstr /V /C:".*\.*\.*\.*\.*\.*\.*\.*\.*" /C:".*\.*\.*\.*\.*\.*\.*\.*" /C:".*\.*\.*\.*\.*\.*\.*" /C:".*\.*\.*\.*\.*\.*" /C:".*\.*\.*\.*\*"') do (
set var=%%a;!var!
))
echo %1,!var!, >>C:\test.txt
exit
虽然它可以搜索所有子文件夹(通过使用 /s),但我希望只有在 4 子文件夹级别(例如 c:\sf1\sf2\sf3\ autorun.exe 应该是一个有效的结果,而 c:\sf1\sf2\sf3\sf4\autorun.exe 和任何在树下的任何发现都应该被选择退出并且不作为结果返回)。
我使用所有通配符组合 (* | .| .*) 和 "\V" 来尝试实现它但失败了。为什么它不起作用,或者是否有其他更聪明的方法?
提前致谢
【问题讨论】:
标签: batch-file