批处理文件一次检索一行,然后循环遍历文件目录以查找每行的匹配项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理文件一次检索一行,然后循环遍历文件目录以查找每行的匹配项相关的知识,希望对你有一定的参考价值。
我有一个密钥和值的文件,并希望逐步检查每个密钥,看看该密钥是否至少在一个文件中出现一次(或提供计数)。
第一个文件看起来像这样:
"foo.bar" : "hello world",
"lorem.ipsum" : "a quick brown fox",
....
我想扫描子目录中的所有.js文件,看看是否使用了“foo.bar”并提供了该键的计数;然后获取下一个键“lorem.ipsum”并清除子目录中的所有js文件以查看它是否被使用然后提供计数。
我得到了解决方案的部分工作,但没有让整个工作一起工作。挑战是findtr没有使用/ c进行计数和need()来保持一切顺序。
外部我可以迭代遍历字符串文件的每一行......
for /f "skip=1 delims=:" %%a in (src/dict/strs_en.json) do (
findstr /s %%a c:fooarmycode*.js
)
但在内部我需要一些更像是在stackoverflow中其他地方的gien的例子:
for /F "delims=" %G in ('findstr /I /S /M "foo.bar" "%CD%*.js"') do @find /I /C "home." "%~G" | findstr /V /R "^$"
其中“foo.bar”真的是我的%% a
最后,期望的输出将是(我只是想知道使用什么和不使用什么)
"foo.bar" 2
"lorem.ipsum" 1
"dolor.et" 0
要么
"foo.bar"
- file1.js
- file2.js
"lorem.ipsum"
- file3.js
"dolor.et"
-
"test.me"
- file2.js
- file3.js
答案
在运行此批处理文件后,output.log
中的输出是否为您提供了可以使用的功能:
@(For /F Skip^=1^ Delims^=^" %%A In (srcdictstrs_en.json) Do @(
Echo="%%A" & FindStr/SMC:"%%A" C:fooarmycode*.js & Echo=))>output.log
以上是关于批处理文件一次检索一行,然后循环遍历文件目录以查找每行的匹配项的主要内容,如果未能解决你的问题,请参考以下文章
批处理文件以循环遍历文件夹并将文件夹和内容复制到具有相同文件夹名称的目录
Linux使用while循环同ssh命令导致只能遍历一次的问题