[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [已解决]筛选以后杀进程的批处理,怎么让代码执行效率更高?谢谢

本帖最后由 HKE 于 2019-10-30 09:50 编辑

我希望做一个自动筛选以后杀除的批处理,希望大佬帮忙看一下,谢谢:handshake
  1. @echo off
  2. netstat -ano > 1.txt
  3. for /f "skip=4 tokens=5* delims= " %%i in (1.txt) do echo %%i >> 2.txt
  4. :restart
  5. type nul >>10.txt
  6. type nul >>5.txt
  7. type nul >>A.txt
  8. netstat -ano >3.txt
  9. for /f "skip=4 tokens=5* delims= " %%i in (3.txt) do echo %%i >> 4.txt
  10. for /f %%i in (4.txt) do (
  11. for /f %%e in ('findstr /iv "%%i" 2.txt') do (
  12. if %%i == %%e (type nul > nul)
  13. for /f %%s in (5.txt) do (
  14. if %%s == %%i (type nul> nul) else echo %%i >> 5.txt
  15. )
  16. )
  17. )
  18. for /f %%k in (5.txt) do (
  19. for %%j in (A.txt) do (
  20. if %%k ==%%j (type nul > nul) else taskkill /pid %%k -t -f
  21. echo %%k
  22. )
  23. )
  24. set /a k=1
  25. set /a n=0
  26. del 3.txt
  27. del 4.txt
  28. del 5.txt
  29. del 10.txt
  30. goto restart
复制代码

回复 1# HKE


    你写这么多 type nul > nul 的目的是?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# HKE


一个del命令可以同时删除多个文件,例如:
  1. del 3.txt 4.txt 5.txt 10.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher
主要是用于不执行任何操作

TOP

回复 4# HKE


if %%s == %%i (type nul> nul) else echo %%i >> 5.txt
直接判断“不等于”就行了吧:
if %%s neq %%i echo %%i >> 5.txt
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# HKE


对比两个文件差异的行,可以试试 findstr 命令,应该可以比你现在的方案更加简洁:
  1. findstr /v /x /g:4.txt 2.txt
复制代码
  1. findstr /v /x /g:2.txt 4.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

大概流程 是不是如此
  1. @echo off
  2. for /f "skip=4 tokens=5* delims= " %%i in ('netstat -ano') do set  #_%%i=1
  3. :restart
  4. :::::
  5. :::::
  6. :;:::
  7. for /f "skip=4 tokens=5* delims= " %%i in ('netstat -ano') do (
  8.      if not defined #_%%i (
  9.         set "f="
  10.         for /f %%j in (a.txt) do if %%i neq %%j  set f=1
  11.         if defined f taskkill /pid %%k -t -f
  12.      )     
  13. )
  14. set /a k=1
  15. set /a n=0
  16. goto restart
复制代码
1

评分人数

    • HKE: 感谢分享技术 + 1

TOP

回复 7# terse


    感谢大牛完美的解释了我的问题!真心感谢大牛的代码,代码的逻辑顺序以及优化步骤我已经牢记在心,我会作为参考对我的代码进行修改。再次忠心感谢大牛的帮助使我的代码更加简洁且高效,谢谢

TOP

返回列表