首页 > 解决方案 > 可以解析文件夹位置以查找 BATCH 中某些字符的实例吗?

问题描述

我有一个 .bat 文件,我试图解析文件夹位置字符串中的每个字符,以便计算某个字符的出现次数。

我怎么能在 .bat 文件中做到这一点?

是否可以使用 FOR 循环来执行与此类似的代码?:

FOR /F %%i in (%cd%) DO (IF %%i =="w" counter+=1)

我知道以上不正确,我才刚刚开始。

到目前为止,还没有在我的研究中找到答案。

标签: windowsbatch-filefor-loop

解决方案


要么使用子字符串(查看每个字符),这对于较长的字符串来说很慢,要么计算单词并在将每个替换"w"" w". 不同之处在于w(它忽略大写,所以它计数wplus W)的计数:

@echo off
set "string=Hello beautiful World"
for /f %%A in ('(for %%a in (%string%^) do @echo %%a^)^|find /c /v ""') do set A=%%A
for /f %%A in ('(for %%a in (%string:l= l%^) do @echo %%a^)^|find /c /v ""') do set B=%%A
set /a count=B-A
echo --- %count%

不只是删除空格的原因是for标准分隔符不仅仅是空格,而是空格、制表符、逗号......

注意:这不会处理毒字符。


推荐阅读