标题: [系统相关] [已解决]筛选以后杀进程的批处理,怎么让代码执行效率更高?谢谢 [打印本页]
作者: HKE 时间: 2019-10-25 15:58 标题: [已解决]筛选以后杀进程的批处理,怎么让代码执行效率更高?谢谢
本帖最后由 HKE 于 2019-10-30 09:50 编辑
我希望做一个自动筛选以后杀除的批处理,希望大佬帮忙看一下,谢谢:handshake- @echo off
- netstat -ano > 1.txt
- for /f "skip=4 tokens=5* delims= " %%i in (1.txt) do echo %%i >> 2.txt
- :restart
- type nul >>10.txt
- type nul >>5.txt
- type nul >>A.txt
- netstat -ano >3.txt
- for /f "skip=4 tokens=5* delims= " %%i in (3.txt) do echo %%i >> 4.txt
- for /f %%i in (4.txt) do (
- for /f %%e in ('findstr /iv "%%i" 2.txt') do (
- if %%i == %%e (type nul > nul)
- for /f %%s in (5.txt) do (
- if %%s == %%i (type nul> nul) else echo %%i >> 5.txt
- )
- )
- )
- for /f %%k in (5.txt) do (
- for %%j in (A.txt) do (
- if %%k ==%%j (type nul > nul) else taskkill /pid %%k -t -f
- echo %%k
- )
- )
- set /a k=1
- set /a n=0
- del 3.txt
- del 4.txt
- del 5.txt
- del 10.txt
- goto restart
复制代码
作者: Batcher 时间: 2019-10-25 17:10
回复 1# HKE
你写这么多 type nul > nul 的目的是?
作者: Batcher 时间: 2019-10-25 17:11
回复 1# HKE
一个del命令可以同时删除多个文件,例如:- del 3.txt 4.txt 5.txt 10.txt
复制代码
作者: HKE 时间: 2019-10-26 08:47
回复 2# Batcher
主要是用于不执行任何操作
作者: Batcher 时间: 2019-10-26 19:01
回复 4# HKE
if %%s == %%i (type nul> nul) else echo %%i >> 5.txt
直接判断“不等于”就行了吧:
if %%s neq %%i echo %%i >> 5.txt
作者: Batcher 时间: 2019-10-26 19:09
回复 1# HKE
对比两个文件差异的行,可以试试 findstr 命令,应该可以比你现在的方案更加简洁:- findstr /v /x /g:4.txt 2.txt
复制代码
- findstr /v /x /g:2.txt 4.txt
复制代码
作者: terse 时间: 2019-10-26 23:30
大概流程 是不是如此- @echo off
- for /f "skip=4 tokens=5* delims= " %%i in ('netstat -ano') do set #_%%i=1
-
- :restart
- :::::
- :::::
- :;:::
- for /f "skip=4 tokens=5* delims= " %%i in ('netstat -ano') do (
- if not defined #_%%i (
- set "f="
- for /f %%j in (a.txt) do if %%i neq %%j set f=1
- if defined f taskkill /pid %%k -t -f
- )
- )
-
- set /a k=1
- set /a n=0
- goto restart
复制代码
作者: HKE 时间: 2019-10-30 09:50
回复 7# terse
感谢大牛完美的解释了我的问题!真心感谢大牛的代码,代码的逻辑顺序以及优化步骤我已经牢记在心,我会作为参考对我的代码进行修改。再次忠心感谢大牛的帮助使我的代码更加简洁且高效,谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |