批处理:从绝对路径获取最后一个文件夹并与字符串进行比较

时间:2013-03-14 13:33:24

标签: batch-file

我将批处理脚本用于.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%

1 个答案:

答案 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具有子目录,它将被计算。