批处理上要说深入,如果单纯只是把批表面上的机制弄懂99%,说实话这确实是个很有趣的事,常会有意外惊喜,但是对实用没太大的帮助。
我觉得主要还是理念上的,不一定非要纯批完成,必要时可以调用第三方或者其他脚本,和其他语言相比,统筹才是批擅长的。记得看到别人这样评价 linux shell:把一件事拆成很多部分分别交给擅长于此的工具来做,这是 shell 的精髓...
说到底就是扬长避短,不强迫某个工具做不擅长的事、同时要让专家能发挥100%功能,不择手段地“化繁为简,提高工作效率”才是我们的最终目的。
举个例子,下面这两个代码都是寻找某一行与 关键词.list 中的内容相匹配的文本,但是前者过于强调批本身的作用,findstr.exe 的功能只被发挥了很少一部分,而后者则是把 findstr.exe 的功能最大化,批只用来补充 findstr.exe 无法完成的部分
- @echo off
- for /f "delims=" %%a in (关键词.list) do (
- for %%b in (*.txt) do (
- findstr /x /c:"%%a" %%b >nul&&echo 在 %%b 中找到 %%a
- )
- )
复制代码
- @echo off
- for /f "tokens=1* delims=:" %%a in ('findstr /m /x /g:关键词.list *.txt') do (
- echo 在 %%a 中找到 %%b
- )
复制代码
|