我将批处理脚本用于.bat文件以从绝对路径获取最后一个文件夹,然后与字符串进行比较。例如,我有:C:\ Scripts \(从我开始运行run.bat)和子文件夹C:\ Scripts \ a \,C:\ Scripts \ b \ results,C:\ Scripts \ c \ results。我想搜索名称=“结果”的文件夹,当我发现它做一些事情时(例如增加一个计数器)。
set /A Counter=0
for /d /r %%F in (*.*) do (
set path=%FF
rem if the last folder from the path is = "results" then do some stuff
if path.contains("results") set /A Counter+=1
)
echo %Counter%
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
set Counter=0
for /f %%F in ('dir /s/b/ad') do (
FOR /f %%p IN ("%%F") DO (
IF /i "%%~nxp"=="results" set /A Counter+=1
)
)
ECHO %counter%
另一方面,
DIR /s/ad/b |FINDSTR /i /e "\results"|FIND /c /v ""
将显示相同的计数。
但是这些方法中的任何一个都会计算“结果”目录的任何外观 - 无论它是否处于最低级别,因此如果...\results
具有子目录,它将被计算。