0

我在 .bat 文件中使用批处理脚本从绝对路径获取最后一个文件夹,然后与字符串进行比较。例如,我有:C:\Scripts\(从我开始 run.bat 的位置)和子文件夹 C:\Scripts\a\、C:\Scripts\b\results、C:\Scripts\c\results。我想搜索名称为“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%

4

1 回答 1

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有子目录,它将被计算在内。

于 2013-03-14T14:19:40.370 回答